MySQLに関する覚書
Bool値を使いたい時はTINYINT
- T/O
絵文字を保存したい場合はutf8mb4を使う
- 絵文字を保存したい場合は
utf8mb4
を指定しないとデータロストが起きる - MySQL 8.0.1からはデフォルト文字セットは
utf8mb4
に変更されている
参考:
TimeStamp型を使ってはいけない
- TimeStamp型は最大値が
2038-01-19 03:14:07
に制限されているので使ってはいけない - 代わりに
DEFAULT CURRENT_TIMESTAMP
やON UPDATE CURRENT_TIMESTAMP
を使用すること
参考:
- MySQL :: MySQL 8.0 リファレンスマニュアル :: 11.2.2 DATE、DATETIME、および TIMESTAMP 型
- MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.3.5 TIMESTAMP および DATETIME の自動初期化および更新機能
SQLの実行計画を見る
- SELECT文の先頭に
EXPLAIN
を付けて実行する
EXPLAIN SELECT * FROM my_table;
- O/Rマッパーなどを使っている場合は実行されるSQLを取り出してツールやコンソールから直接実行することになる