MySQLに関する覚書
MEMO-1. Bool値を使いたい時はTINYINT
- 昔からあるイディオムみたいなもの
- ただし、最近は推奨されない雰囲気が出てきた
MEMO-2. 絵文字を保存したい場合はutf8mb4を使う
MEMO-3. TimeStamp型を使ってはいけない
- TimeStamp型は最大値が
2038-01-19 03:14:07
に制限されているので使ってはいけない
- 代わりに
DEFAULT CURRENT_TIMESTAMP
やON UPDATE CURRENT_TIMESTAMP
を使用すること
- cf.
MEMO-4. SQLの実行計画を見る
- SELECT文の先頭に
EXPLAIN
を付けて実行する
EXPLAIN SELECT * FROM my_table;
MEMO-5. パフォーマンスチューニングの設定
MEMO-6. トランザクションのタイムアウト時間
- InnoDBのトランザクションロック時にロック解放まで待機する時間
- デフォルトでは50秒
- 設定の確認は↓のクエリ
mysql> SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';