4

MySQL をインストールしていくつかのデータベースをインポートした後、私の debian ベースの起動が非常に遅くなりました。いくつかのステートメントを探していると、起動中に次のステートメントが見つかりました。

mysql> show full processlist;
+----+------------------+-----------+------+---------+------+----------------+----------------------------------------------------------------------+
| Id | User             | Host      | db   | Command | Time | State          | Info                                                                 |
+----+------------------+-----------+------+---------+------+----------------+----------------------------------------------------------------------+
|  9 | debian-sys-maint | localhost | NULL | Query   |   12 | Opening tables | select count(*) into @discard from `information_schema`.`PARTITIONS` |
| 10 | root             | localhost | NULL | Query   |    0 | NULL           | show full processlist                                                |
+----+------------------+-----------+------+---------+------+----------------+----------------------------------------------------------------------+
2 rows in set (0.00 sec)

ここで問題を引き起こすステートメント:

select count(*) into @discard from `information_schema`.`PARTITIONS`

+-10 個のデータベースがあり、合計で 8 GB を超えます。

システムの起動時にこのクエリを無効にする構成はありますか? はいの場合、なぜ起動時に実行するのですか?

情報

カスタム構成のない標準の MySQL インストールがあります。

よろしくお願いします。

4

1 に答える 1

8

Linux MintのベースとなっているDebianには、mysqlサーバーの起動時または再起動時に実行されるスクリプトがあり、破損したテーブルをチェックしてアラートを出すようです。

私のDebianサーバーでは、原因は/etc/mysql/debian-startbashスクリプトのようです。このスクリプトは、を呼び出します/usr/share/mysql/debian-start.inc.sh。両方のスクリプトを確認し、すべてのテーブルを反復処理している関数をコメントアウトしてください。簡単に見ると、次のようになります。

check_for_crashed_tables;

これは、debian-start前述のスクリプトから呼び出されます。

于 2012-09-24T17:19:10.447 に答える