本当にただのメモ

なるべく Qiita に投稿しよう

mysql

show processlist; の結果が多すぎるときに、スロークエリの process id を特定する方法あれこれ

innotop を使う $ innotop -u root -p xxxxxx https://linux.die.net/man/1/innotop デフォルトのソートが Time の降順になっている pager grep ... mysql のコンソールで pager をカスタマイズすることができる どういうことかというと、↓ みたいにすると、…

case sensitive にするために BLOB 型にするのは現代では BK 、カラム個別に CHARSET を指定すれば良い

例: name VARCHAR(255) CHARACTER SET ascii COLLATE ascii_bin NOT NULL この方法のメリット: 想定外のマルチバイトが入らない 逆に BLOB だとアプリケーションで気をつけないとバイナリ列を突っ込める ちなみに CHARACTER SET = ascii だとデフォルトで…

BINARY, VARBINARY, BLOB

MySQL :: MySQL 5.6 リファレンスマニュアル :: 11.4.2 BINARY および VARBINARY 型 字の如く、バイナリ文字列を格納する BINARY(N) VARBINARY(M) N, M は文字数でなくバイト数である BLOB = VARBINARY 型で格納できるバイト数を指定しなかったもの、と捉え…

レプリ遅延の原因

漢(オトコ)のコンピュータ道: MySQLにおけるレプリケーション遅延の傾向と対策 ネットワークの遅延 巨大なトランザクションを実行した スレーブの負荷が高すぎる 自分の経験的には圧倒的に 2 番目が多い。 むしろ 3 番目のケースには出会ったことがなかった…

SHOW PROFILE

再現性のあるスロークエリーには「SHOW PROFILE」を試してみよう | Think IT(シンクイット) 使い所 EXPLAIN 上問題なさそうに見えるけど遅いクエリのプロファイリング 普通のクエリチューニングなら EXPLAIN の結果を見ていく方が断然効率が良い ただし My…

JOIN ON ... table AND ... で絞り込み条件を入れる

SELECT * FROM a JOIN b ON a.id = b.id AND b.foo = 'bar' こんな感じ。 INNER JOINでは、得られる結果に違いはないが、OUTER JOINでは結果が変わってしまう! JOIN ONで絞り込み条件を書くと、「 結果を絞るのではなく、結合前のテーブルのレコードを絞る …

MySQL の DATETIME 型と TIMESTAMP 型 

MySQLの日付型の扱い方や機能をまとめてみました | つかびーの技術日記 値の範囲 TIMESTAMPの方が表現範囲が小さいです。 データサイズ TIMESTAMPの方が小さいです。DATETIMEは5byte~8byteですが、TIMESTAMPは4byte~7byteです。可変なのは小数部があるから…