mysqlについてメモ
個人的なメモだってば
▼ UNIQUE KEYを貼ろうとした時に怒った話
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
っておこられる。
InnoDBのカラムインデックスに使えるカラムの限界は767 bytesなんだって
MySQL :: MySQL 5.1 リファレンスマニュアル :: 6.4.3 カラムインデックス
UTF-8環境で
varchar(256) をキーに使おうとすると 256 * 3byte = 768byte でアウト
varchar(255) をキーに使おうとすると 255 * 3byte = 765byte でセーフ
ふーん・・・
myISAMだともっと長いの使えるらしいとの噂
▼ macのmysqlでクエリーログを取得しようとした時に発生した話
調べたら
mysql.confに
log=ファイルパス
で起動時に--logつけりゃーいけるよって話じゃなかった
mysql.confに
general_log = ON
general_log_file=ファイルパス
って書いて
起動スクリプトで --general-logつけろって話だった
▼ innoDBでバッファキャッシュヒット率が気になったときの話
mysql> show global status like 'Innodb_buffer_pool_%';
Variable_name Value Innodb_buffer_pool_dump_status not started Innodb_buffer_pool_load_status not started Innodb_buffer_pool_pages_data 462 Innodb_buffer_pool_bytes_data 7569408 Innodb_buffer_pool_pages_dirty 227 Innodb_buffer_pool_bytes_dirty 3719168 Innodb_buffer_pool_pages_flushed 1358 Innodb_buffer_pool_pages_free 130606 Innodb_buffer_pool_pages_misc 4 Innodb_buffer_pool_pages_total 131072 Innodb_buffer_pool_read_ahead_rnd 0 Innodb_buffer_pool_read_ahead 0 Innodb_buffer_pool_read_ahead_evicted 0 Innodb_buffer_pool_read_requests 9107914 Innodb_buffer_pool_reads 223 Innodb_buffer_pool_wait_free 0 Innodb_buffer_pool_write_requests 36469 17 rows in set (0.00 sec)
Innodb_buffer_pool_read_requests =
InnoDB が行った論理読み込みの数(累計)
Innodb_buffer_pool_reads =
InnoDBがバッファ プールの内容を利用できず、シングル ページ読み込みを行わなければならなかった論理読み込みの回数(累計)
なので
( 1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests ) * 100
で算出できるんですって
MySQL :: MySQL 5.1 リファレンスマニュアル :: 4.2.5 ステータス変数