web-dev-qa-db-ja.com

SHOW TABLE STATUSがInnoDBで非常に遅い

最近、私たちはMyISAMからInnoDBに移行しており、MyISAMが各テーブルに対してメタ情報を使用して情報などを追跡していることを理解しています。

問題は、PHPMyAdminが「SHOW TABLE STATUS FROM dbase;」を実行するようなソフトウェアで発生します。このコマンドの実行には最大50秒かかることがあります。これを最適化する方法はありますか? (MySQLまたはMariaDB)

ありがとう!

4
Seymour

以下は、簡単な方法です。

set global innodb_stats_on_metadata = 0;
show table status;
set global innodb_stats_on_metadata = 1;

innodb_stats_on_metadatashow table status;の直後にオンにして、クエリオプティマイザー分析でメタデータが効率的に使用されるようにする場合InnoDBを含むクエリの評価。オフのままにすると、より安定したクエリ実行プランが提供されますが、書き込みの多い環境ではインデックス統計がすぐに古くなります。

試してみる !!!

5
RolandoMySQLDBA

1.8GBはかなり小さなデータベースなので、最適化して修復する必要があると思います。少し時間がかかるかもしれませんが、基本的には、その特定のタスクでphpmyadminを使用せずにターミナルを提供する方がはるかに優れています。シェルにアクセスできる場合は、

mysqlcheck -u your_username -p dbname
0
alxkls