最近、過去数日から異常に長い時間がかかるクエリに出くわしました。先月、MySQL データベースのサーバー移行を行いましたが、以前のサーバーでは問題は発生しませんでした。古いサーバーの MySQL バージョンは 5.1.34 で、現在のサーバーでは 5.1.58 です (それがこの問題と関係があるかどうかはわかりません)。
クエリは次のとおりです。
SELECT table_name,
partition_name,
subpartition_name,
partition_method,
subpartition_method,
partition_expression,
subpartition_expression,
partition_description,
partition_comment,
nodegroup,
tablespace_name
FROM information_schema.partitions
WHERE table_schema LIKE 'wialogdb'
AND NOT Isnull(partition_name)
AND table_name LIKE 'freemail'
ORDER BY table_name,
partition_name,
partition_ordinal_position,
subpartition_ordinal_position;
これは、テーブル構造に関する詳細を取得するために Navicat によって起動される information_schema.PARTITIONS に対するクエリであり、再現が非常に困難です。
テーブルを編集するとき、Navicat は情報スキーマからテーブルに関するすべての詳細を収集する必要があります (例: エンジンの lsit、テーブル列、分析を参照してください Show Create テーブルなど)。 WHERE 条件が「正しくない」 WHERE TABLE_SCHEMA LIKE 'wialogdb' LIKE であってはならない WHERE TABLE_SCHEMA = 'wialogdb' であるべきです。このクエリははるかに高速ですが、Navicat の内部コードであるため変更できません。過去にはこの問題はありませんでした (古い MySQL 5.1.34)。
どんな助けでも大歓迎です。
前もって感謝します。