NoSQLが常に速いわけではないという前提から出発し、LSMツリーの書き込みパス、Elasticsearchの転置インデックスとセグメント、MySQL全文検索との違い、HDD・SSD I/Oパターンまで元の構造を維持して整理します。
InnoDBで通常のSELECTとlocking readがどのように異なる動作をするか、REPEATABLE READとREAD COMMITTEDの違い、phantomとnext-key lock、undo/redoの役割を一度に整理します。
クラスタードインデックス、セカンダリインデックス、undo/redo、REPEATABLE READ、READ COMMITTED、MyISAM との違い、wait_timeout、DBセッションとコネクションプールまで一度に網羅するMySQL整理ノートです。
ドライビングテーブルとドリブンテーブルの概念が特にNested Loop Joinでなぜ重要なのか、EXPLAINでどう読むかとDBMS別の制御方法をまとめます。
InnoDBでテーブルがディスクにどのように保存されるか — File、Segment、Extent、Page、Row各階層の役割とサイズを整理します。
JDBC APIの概要、DataSource設定、JdbcTemplateの使い方、@Transactionalによるトランザクション管理と伝播属性まで整理します。
MySQL FullText Searchの限界を分析し、Elasticsearchを導入して検索API性能を改善した過程をまとめます。
MySQL全文検索APIの応答時間を6.85秒から84msへ、Left JoinをSubqueryに変更することで約30倍向上させた過程をまとめます。
macOSでMySQLを起動するときにbrew servicesとmysql.serverがどう違うのか、どんな状況でどちらを使えばいいかをまとめます。