MySQL

前準備 yum -y install libpcap-devel ダウンロード(http://hackmysql.com/tools) wget http://hackmysql.com/code/mysqlsniffer.tgz mkdir mysqlsniffer mv mysqlsniffer.tgz mysqlsniffer tar xzvf mysqlsniffer.tgz cd mysqlsniffer コンパイル gcc -m64 …

my.cnf おれおれテンプレート

[mysqld] # basic datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql old_passwords=1(いらないかもね) expire_logs_days=2 server-id=[ipアドレスを使った数字がいいんじゃね?] default-table-type=InnoDB default-character-set=utf8 …

クエリープロファイリングコマンド

クエリー実行前のプロファイリング EXPLAIN 文で見てみる クエリープロファイリング1 set profiling=1; なにかクエリーを実行 show profile; クエリープロファイリング2 FLUSH STATUS; なにかクエリーを実行 (ただし、SQL_NO_CACHE を追加すること) show s…

MySQL プロファイリングメモ

使用している MySQL プロファイリングツール * innotop my.cnf にスローログを仕込む # slow query log log-slow-queries=/var/log/mysql-slow.log long_query_time=1 log-queries-not-using-indexes スローログを読むツールはなんかあるようだが、なくても…

MYSQL + DBI

とあるところから、理解不能の現象を聞いた。 DBIの接続アトリビュートに { AutoCommit => 1, ... }と指定し、 $dbh->commit とすると、rollback するような現象が起こる。 というもの。あとで詳しく調査する。

MySQL ファンクションインデックスがないので、日付の比較が気になった

MySQL は(Oracleでいうところの)ファンクションインデックスがないので、 where 句における日付比較に関するより良い記述はどうなのかがきになった。 前提条件 設計の時点で datetime でなく、unixtime でやれば整数で比較ができて、一番パフォーマンスがよ…

MYSQL last_insert_id() によるシーケンスのシミュレーションの理解

うーん、私には update sequence set id = last_insert_id(id+1); -> (A) select last_inset_id() -> (B) でマルチユーザ対応のシーケンスの代わりになる理由が理解できない。 前提条件 innoDB エンジンを使用する。 last_inset_id() はセッションごとに保持…