ある日いきなり社内勉強会でライトニングトークしてねwwと指命されたので、MySQLの話してきました。以前サイバーエージェントのエンジニアブログに掲載された「redis、それは危険なほどのスピード」という記事で比較対象になったMySQLに関して考察した内容です。 内容を4行でまとめると、 はてブのツッコミ通りHashインデックス意味ないです rangeスキャンの範囲が広すぎるとB-Treeインデックスはむしろ遅い 2倍速いはread件数の差。アルゴリズムとデータ構造はDBだって重要 パーティション刈り込みでRedisレベルにMySQLを高速化 という内容になります。 俺のSQLがこんなに遅いわけがない 資料では触れていませんが、テーブルの大部分を取得するrangeスキャンであっても、B-Treeインデックスが有効になるケースがあります。例えばテストに用いたテーブルに対して以下のクエリを投げる