MySQLを実行中に時間がかかるなーと思ってた時、以下のコマンドで実行中のSQL文がわかる。現在実行中のものだけなので、DBアクセス中にコマンドを入力する必要がある。
mysql> show processlist;
これで判定で来たらそこのテーブルまわりをよく見直す。特にWHERE句で指定されているフィールド。そのフィールドがIndexに登録されていなければ、登録する。
ほとんどの場合は、これで解決するが、解決しない場合は、my.cnfファイルをチェックすること。メモリの使用量などDBがでかくなればそれなりに対応が必要となる。
ちなみに、いまは、MySQLは有償化されたのでmariaDBですね。オープンソースとして使うには。コマンドからなにからすべて同じですので、そのままMySQLと同じように使えます。
今後は徐々に特徴が分かれてくるのかもしれませんね。