MySQL 5.6 テーブル作成が非常に遅い

MySQL 5.6 テーブル作成が非常に遅い

最近、MySQL サーバーを 5.1 から 5.6 (CentOS 6.x で実行) にアップグレードしました。アップグレード以来、特定のテーブル タスクを実行しようとすると、クエリに非常に長い時間がかかります。テストの実行に 1 秒かかるはずが、実行に 1 ~ 2 分かかるため、開発サイクルの反復に非常に支障をきたし、生産性が著しく低下しています。

非常に長い時間がかかっているクエリ:

  • ドロップして作成
  • INSERTSの後にCREATE
  • 切り捨て

ローカル Mac に同じバージョンの MySQL (5.6.15) をインストールしています。現在、6 つのテーブルを操作しているため、これらのテーブルを頻繁に切り捨てたいと考えています。ローカル Mac でテーブルを切り捨てると、クエリに 21 ミリ秒かかります (まったく妥当な値です)。同じテーブルを CentOS サーバーで切り捨てると、8.5 秒かかります。テーブルはすべて InnoDB です。

ローカル Mac と CentOS サーバー上の同じデータベース内の他のテーブルを試してみましたが、他のテーブルでは極端な遅さが続きます。そこで、まったく別のデータベースを試してみましたが、やはり極端な遅さが続きます (ローカル Mac でデータベースの 1 つを復元するには 25 秒かかりますが、CentOS サーバーでは 4 分 14 秒かかります)。

MySQL のバージョンは同じなので、設定の違いかもしれないと考えました。 CentOS とローカル Mac で「show variables;」クエリをエクスポートしましたが、違いは (パスやログ ファイル名など以外) 次の 2 つだけです。

innodb_use_native_aio   OFF // local Mac
innodb_use_native_aio   ON  // CentOS

lower_case_file_system  ON  // local Mac
lower_case_file_system  OFF // CentOS

lower_case_table_names  2 // local Mac
lower_case_table_names  0 // CentOS

have_symlink    YES      // local Mac
have_symlink    DISABLED // CentOS

関連情報