この記事について
| 環境 | mysql(xampp)、ターミナル |
|---|---|
| 目的 | MYSQLが遅かった原因を調べる |
| 結果 | processlist・スレッド数・接続数・mysqladmin statusを確認。最終的にはインデックス追加で解決 |
つまずきポイント要約
- lock wait timeout exceededエラーはテーブルにインデックスをつけることで解決した
MYSQLが遅かったとき、原因究明のため調べたこと
ターミナルでMYSQLに接続して・・・
1.show processlistでQUERYの実行時間を調べる
2.innodb_thread_concurrencyを確認
InnoDB の処理を同時に実行できるスレッド数の上限値
コマンド
show variables like '%thread%'
上限なしの0なので問題なし
3.max_connectionsを確認
max_connectionsは同時接続数の最大値
コマンド
show variables like '%connection%'
151と出たので問題なし
4.mysqladminコマンドでMySQLサーバの状態を調べる
ディレクトリ移動(xamppの場合)
C:\xampp\mysql\bin
コマンド(パスワードなし)
mysqladmin status
コマンド(パスワードあり、xamppの場合)
mysqladmin status -u ユーザー名 -p
詳しく見る場合
mysqladmin extended-status
こちらを参考にした
おまけ:lock wait timeoutエラーの件
エラーが出てることに気づいたので、
lock wait timeout exceeded; try restarting transaction
ロックの待ち時間を確認してみる。
コマンド
show variables like '%timeout%'
innodb_lock_wait_timeoutが50秒であることを確認。
この件は、テーブルにインデックスをつけることで問題は解決した。
こちら
ただの覚書でした。
