記憶永続化用のメモブログ

脳内に揮発性記憶領域しかないことに気づいたので作成

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だともっと長いの使えるらしいとの噂

macmysqlでクエリーログを取得しようとした時に発生した話
調べたら
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 ステータス変数