タグ付けされた質問 「mysql」

MySQLのすべてのバージョン(Microsoft SQL Serverではありません)。質問に関連する場合は、mysql-5.7のようなバージョン固有のタグも追加してください。

2
MySQLがシリアル同期I / Oを行うのはなぜですか?
何度も実行するのに長い時間がかかるMyISAMテーブルで特に厄介なクエリを見ると、MySQLはかなり奇妙なI / Oパターンを公開しているように見えることに気づきました。 I / Oの量(たとえば、テーブルスキャンの場合、または結果としてキャッシュが空にecho 3 > /proc/sys/vm/drop_cachesなるため、最初にインデックスをディスクからロードする必要がある場合)、基礎となるブロックデバイスのキューサイズは値1に近く、パフォーマンスは非常に低いわずか4〜5 MB /秒: root@mysql-test:~# iostat -xdm 5 /dev/sda Linux 3.2.0-40-generic (mysql-test) 04/30/2014 _x86_64_ (4 CPU) Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util sda 0.14 24.82 18.26 88.79 0.75 4.61 102.56 2.83 26.39 19.29 27.85 2.46 …

2
MySQLがメモリを解放しない
MySQLは、大きな挿入または選択ステートメントが実行された後、テーブル全体をキャッシュ(テーブルサイズ=〜20GB)に保持したいようです。現在、私のinnodbバッファープールは20GBです。合計RAMは32GBです。メモリ使用量とinnodbステータスからの出力、およびmysqltunerからの出力を提供します。過去数日間、私は気が狂っている。助けてください!フィードバックに感謝します。さらに情報が必要な場合はお知らせください。 また、「FLUSH TABLES」を実行すると、メモリ内で閉じて再度開きます。少なくとも私はそれが起こっていると思います。一連の挿入を実行する前のinnodbの現在のメモリステータスは次のとおりです。 ---------------------- BUFFER POOL AND MEMORY ---------------------- Total memory allocated 21978152960; in additional pool allocated 0 Dictionary memory allocated 6006471 Buffer pool size 1310719 Free buffers 347984 Database pages 936740 Old database pages 345808 Modified db pages 0 Pending reads 0 Pending writes: LRU 0, flush list 0, …
8 mysql  innodb  memory 

4
DROPとTRUNCATEの違い
TRUNCATEドロップする方法の違いは何ですか? 私はそれがテーブル内のすべてのデータを削除すると思いますが、テーブル名をデータベースに保持し、そこでDROPすべてのデータとテーブルを削除します。これは正しいです ?

1
XMLをMySQLテーブルに変換する
次の形式の大きなXMLファイルがあり、このファイルをMySQLテーブルに変換する必要があります。どうすればこれを達成できますか? ~~~~~~~~~~ <host starttime="1392325468" endtime="1392325486"><status state="up" reason="user-set"/> <address addr="192.168.0.2" addrtype="ipv4"/> <hostnames> </hostnames> <ports><extraports state="filtered" count="2"> <extrareasons reason="no-responses" count="2"/> </extraports> <port protocol="udp" portid="22"><state state="open|filtered" reason="no-response" reason_ttl="0"/><service name="ssh" method="table" conf="3"/></port> <port protocol="udp" portid="123"><state state="open|filtered" reason="no-response" reason_ttl="0"/><service name="ntp" method="table" conf="3"/></port> </ports> </host> ~~~~~~~~~~
8 mysql  xml 

1
MySQLエラー:バイナリログに書き込むことができません
私は(別の開発会社から継承された)システムを使用していますが、その機能のすべてをまだ知りません。構築: -Webクライアント/アプリケーション(symfony 1.4) -DB-MySQL。 プロジェクトは2つのサーバーにデプロイされます 。1番目はnginxサーバー+ PHP + DBマスターです。 2番目:DBスレーブ。 データがDBマスターでWebクライアントによって変更されると、DBスレーブは正常に動作し、データは通常のレプリケーションプロセスを使用します。MySQL管理クライアントによってデータが変更されると、通知が届きます。 ステートメントを実行できません:BINLOG_FORMAT = STATEMENTおよび少なくとも1つのテーブルが行ベースのロギングに限定されたストレージエンジンを使用しているため、バイナリログに書き込むことができません。トランザクション分離レベルがREAD COMMITTEDまたはREAD UNCOMMITTEDの場合、InnoDBは行ログに制限されます その後、DBスレーブが停止し、レプリケーションプロセスが中断します(エラー挿入...重複エントリ...)。 同じテキストで同様の通知が発生し(この状況ではエラー)、Javaアプリケーション/モジュール(トランザクション内で実行されます)でデータを挿入しようとすると、例外の後、トランザクションはロールバックされ、変更は行われません。 この問題を解決してシステムを機能させ、DBマスターとDBスレーブの修正データを通常モードで機能させるにはどうすればよいですか?
8 mysql  logs  errors 

1
MySQLでInnoDBテーブルを最適化する方法
私はMySQLで断片化されたテーブルのみを最適化する方法を調査しており、テーブルの最適化に関するこの投稿をレビューしました。基本的には、任意のテーブルについてinformation_schemaデータベースに対してクエリを実行し、それらのテーブルのみdata_free > 0に対するSQLステートメントを作成しますOPTIMIZE。このクエリを実行したところ、最適化のために148のテーブルが特定されました。識別されたすべてのテーブルはInnoDBテーブルです。結果の最適化SQLスクリプトを実行した後、元のスクリプトを再実行して断片化されたテーブルを識別し、最初のパスでまったく同じテーブルを返しました。 InnoDBテーブルとOPTIMIZEコマンドに関して競合する投稿を見ました。OPTIMIZEInnoDBテーブルでは機能せず、実行する必要があると言う人もいますALTER TABLE table_name ENGINE=INNODB。InnoDBテーブルに対して実行するときOPTIMIZEに実際にALTER TABLEコマンドを呼び出すという人もいます。そのことを念頭に置いて、ALTER TABLEフラグメント化されていると識別されたInnoDBテーブルの1つに対してコマンドを実行し(data_free > 0)、data_freeその後は変更されないことがわかりました。それはまだ0より大きいです。また、MySQLを再起動し、同じ結果を見つけるためだけにチェックしました。 これで、MySQL 5.5.29を実行しているサーバーがいくつか組織にあり、それらすべてに対してクエリを実行して、InnoDBテーブルを特定しましたがDATA_FREE=0 or NULL、何も返されませんでした。それらはすべてゼロより大きいです。 また、ゼロより大きいOPTIMIZEいくつかのMyISAMテーブルに対してコマンドを実行し、DATA_FREE後でそれがゼロであることを確認しました。 誰かがこれについて私にいくつかの光を当てることができますか?InnoDBテーブルから断片化を削除する適切な方法は何ですか?断片化されたInnoDBテーブルを特定する適切な方法は何ですか? ありがとう

2
CAST(1 AS SIGNED INTEGER)がMySQLでBIGINTを返すのはなぜですか?
私がそうするなら、私はCAST(1 AS SIGNED INTEGER)いつもBIGINT返されることになります、例えば: $ mysql -u root -p --column-type-info Enter password: --- Copyright and help message snipped for brevity --- mysql> select cast(1 as signed integer); Field 1: `cast(1 as signed integer)` Catalog: `def` Database: `` Table: `` Org_table: `` Type: LONGLONG <== LONGLONG i.e. 64 bit integer Collation: …

3
複数の結合がある最新の日付に基づいて行を選択します
私はこのクエリを持っています(SQLFiddle): SELECT c.name, a.user_id, a.status_id, a.title, a.rtime, u.user_name, s.status_name FROM company c LEFT JOIN action a ON a.company_id=c.id LEFT JOIN user u ON u.id=a.user_id LEFT JOIN status s ON s.id=a.status_id WHERE u.user_name='Morgan' -- WHERE c.name='Fiddle' GROUP BY c.id HAVING a.rtime IS NULL OR a.rtime = ( SELECT max(rtime) FROM action …
8 mysql  group-by 

2
OracleデータベースをMySQLサーバーに移行する方法 [閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 4年前休業。 現在、アプリケーションはOracle 11gデータベースを使用して実行されています。MySQLクラスターで動作するアプリケーションの新しいバージョンを開発しています。OracleデータベースからMySQLデータベースにデータを移行する必要があります。これはデータベースオブジェクトの直接コピーではありません。新しいバージョンのアプリケーションスキーマ(テーブルの構造と関係)が変更されました。また、監査テーブルもコピーする必要があります。古いOracleスキーマと新しいMySQLスキーマのテーブル、列をマップし、コピーを適用してデータをコピーする方法はありますか? この活動は2つのステップで行うことを考えています。1. OracleデータベースをMySQLデータベースに変換します。2.テーブルごとにテーブルをコピーするストアドプロシージャを記述します。 この種のデータベースをあるRDBMSベンダーから別のベンダーに移行する際のベストプラクティスはありますか これに利用できるオープンソースまたは商用ツールはありますか?

3
MySQLリンクサーバーをSQL Serverに追加するにはどうすればよいですか?
SQL Server上のリンクサーバーをMySQLサーバーに追加しようとしています。 SQL Serverは、異なるドメイン名を持つ別のマシンにインストールされていることに注意してください。 SQL Serverは10.0.1.1old_domain.comにあります。 MySQLサーバーは10.0.1.2new_domain.comにあります。 サーバーにODBCデータソースを追加し10.0.1.1、接続をテストしましたが、問題は報告されていません。 次に、Microsoft SQL Server Management Studioを開いてに移動しましたSQL SERVER > Server Object > Linked Servers。 リンクサーバーを追加するためのウィザードが表示され、次のように構成しました。 リンクサーバー:「MySQLNewServer」 「その他のデータソース」プロバイダー「Microsoft OLE DBプロバイダーfor ODBC」を選択しました製品名「MySQLへの接続」データソース「MySQL」は、最初のステップで追加したデータソースと同じ名前です。 [セキュリティ]タブで[このセキュリティコンテキストを使用して作成する]を選択し、SQL Serverユーザー名とSQL Serverパスワードを入力しました 「OK」を押します 注:私はこのリンクhttp://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/の指示に従いました しかし、私はこのエラーを受け取ります: リンクサーバー「MySQLNewServer」のOLE DBプロバイダー「MSDASQL」がメッセージ「[MySQL] [ODBC 5.2(w)Driver]を返しました。10.0.1.1上のMySQLサーバーに接続できません(10055)Microsoft SQL Serverエラー:7303。 誰かが私が間違っていることを教えてもらえますか?これらの2つのサーバーを通信させるにはどうすればよいですか?

1
MySQLは巨大なテーブルと単純なSELECTにFORCE INDEXを必要とします
さまざまなソースからの記事をMySQLテーブルに保存し、ユーザーがそれらの記事を日付順に取得できるようにするアプリケーションがあります。記事は常にソースによってフィルタリングされるため、クライアントSELECTの場合は常に WHERE source_id IN (...,...) ORDER BY date DESC/ASC INを使用しているのは、ユーザーが多くのサブスクリプションを持っているためです(一部には数千のサブスクリプションがあります)。 次に、articlesテーブルのスキーマを示します。 CREATE TABLE `articles` ( `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `source_id` INTEGER(11) UNSIGNED NOT NULL, `date` DOUBLE(16,6) NOT NULL, PRIMARY KEY (`id`), KEY `source_id_date` (`source_id`, `date`), KEY `date` (`date`) )ENGINE=InnoDB AUTO_INCREMENT=1 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' COMMENT=''; (日付)インデックスが必要です。ソースでフィルタリングせずに、このテーブルでバックグラウンド操作を実行している場合があるためです。ただし、ユーザーはこれを行うことはできません。 テーブルには約10億のレコードがあります(そうです、将来のためにシャーディングを検討しています...)。典型的なクエリは次のようになります。 …

2
MySQL-最後の行が削除された場合、自動インクリメントは連続してインクリメントしません
自動インクリメントされた主キーIDを含むテーブルがあります。最後の行(たとえば、最高のID、たとえばid = 6)を削除して新しい行を挿入すると、新しいIDは7から始まります。主キーが6から始まることを変更する必要があるパラメーターはどれですか。 CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM; INSERT INTO animals (name) VALUES ('dog'),('cat'),('penguin'), ('lax'),('whale'),('ostrich'); 結果: ID名 1犬 2猫 3ペンギン 4亜麻 5クジラ 6ダチョウ DELETE FROM animals WHERE id = 6; INSERT INTO animals (name) VALUES ('x'); 結果: …

3
MySQLがグローバルルーチン(ストアドプロシージャや関数)を作成する可能性
どういうわけかグローバルに利用可能なルーチンを定義することは可能ですか?すべてのルーチンはデータベースのスコープ内で作成する必要があるようです。 (事前に発行せずにuse dbname)コンソールからルーチンを作成しようとすると、エラーが発生します。 ERROR 1046 (3D000): No database selected 同一のデータベースが大量にあり(データは異なります)、いくつかのテーブル名に対していくつかのトリガーを作成することが目標です。ただし、実行するルーチンは1つだけにしたいので、データベースごとにこれらのルーチンを作成する必要はありません(これらは同じなので、ルーチンは各データベースで同じように動作します)。

1
複数のテーブルを1つの行として結合した結果を取得する
次の2つのテーブルがあります。 table1: id | name --------- 1 | john 2 | jack table2: id | profile_id | institution ----------------------------- 1 | 1 | SFU 2 | 1 | UBC 3 | 2 | BU 4 | 2 | USC 5 | 2 | SFU ユーザーIDを使用してユーザーに関するすべての情報を取得したい場合は、これを使用して簡単に参加できます。 select a.id, a.name, b.institution from …
8 mysql 

1
テーブルレベルのロックエラーの原因は何ですか?
データベースはすでに2回停止していて、原因を探そうとしました。 show processlist Waiting for global read lock | INSERT INTO {myisam_table} ... ここではディスク領域がいっぱいだったので、それをもう少し与えると問題は終わったと思いましたが、翌日の正午に再びハングしました。 show processlist Waiting for table level lock | UPDATE {myisam_table} ... 何が原因ですか? Mysqlデフォルトエンジン:InnoDB。 データベースには、MyISAMエンジンとInnoDBエンジンの両方を備えたテーブルが混在しています。 ここに投稿されたログ: http://arturito.net/2013/08/28/mysql-waiting-for-table-level-lock-errors/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.