mysql
これは何か? 波ダッシュのような文字を変換するための ruby 用ライブラリです。 takatoshiono/wavedash · GitHub 対象ユーザー アプリケーションの文字コードは utf-8 だが、MySQL の文字コードが ujis, eucjp-ms, cp932, sjis である アプリケーションの外…
なぜか忘れたけど MySQL のストレージエンジンについて調べたので書いておく。 はじめに断っておくと MySQL 5.6 以降について書いています。 MySQL の「ストレージエンジン」とはなにか? ストレージエンジンとはInnoDBのことである。 MySQLはプラガブルな(…
MySQL で EXPLAIN を使って実行計画を調べていると Extra フィールドに「Select tables optimized away」というメッセージが表示された。これはなんだろうか? mysql> explain select max(id) from products ; +----+-------------+-------+------+---------…
どういう本か データベースのインデックスについて解説している本。Bツリーインデックスの内部構造、効率よくインデックスを使う方法、実行計画の見方などが書いてある。Oracleデータベースの用語を使って書かれているけど、「原理は他のデータベースに…
今更だけど MySQL 5.6 ではオンラインDDLの機能が追加されている。今日はこのオンラインDDLについて勉強したことを書いてみる。 MySQL のマニュアル MySQL :: MySQL 5.6 Reference Manual :: 14.11 InnoDB and Online DDL にいろいろ書いてある。いまから書…
ロック待ちでデッドロック InnoDB は同じロックを待つクライアントが 200 を超えるとデッドロック扱いになる、というやつがある。 このへんに詳しく書いてある。 Open database life: InnoDBのAUTO_INCREMENTが遅い問題は5.1でどう改善されたのか 同じロック…
一貫性のある非ロック読み取り InnoDB では MVCC (multiversion concurrency control) という仕組みによって 一貫性のある非ロック読み取り(Consistent Nonlocking Reads)を実現してる。 トランザクションの分離レベルが REPEATABLE READ (デフォルト) の…
1つ前のエントリ Query_time - Lock_time > long_query_time - takatoshiono's blog で以下のように書いた。 ソースコード MySQL 5.0.96 で Lock_time が 0 になるのが気になったのでソースをダウンロードしてきて追ってみた。Lock_time で grep すると以下…
MySQL(InnoDB)でロック待ちタイムアウトになるクエリはスロークエリログに記録されるのか? 気になったので調べていた。 ロック待ちタイムアウト あるトランザクションで UPDATE 中の行を他のトランザクションから UPDATE しようとするとロック待ちになる ロ…