1. What's New inWhat's New in
MySQL 5.7 InnoDBMySQL 5.7 InnoDB
奥野 幹也
Twitter: @nippondanji
mikiya (dot) okuno (at) gmail (dot) com
@DB Tech Showcase Tokyo 2016
6. オプティマイザの新機能
● EXPLAIN for CONNECTION
●
JSON EXPLAIN
● コストモデル
– JOIN の順序選択
– 統計情報の正確性
– コストの係数のユーザーによる設定
● GROUP BY
●
FROM 句のサブクエリ
● IN サブクエリ
●
UNION ALL
● ソート
● テンポラリテーブル
41. Fast Index Creation
(MySQL 5.5)
● 従来のインデックス作成は、新しい定義の(インデックス追
加後の定義を持つ)テーブルを作成し、すべてのデータを
再コピーするというものだった。
– インデックス構築中は参照だけが可能であり、更新はブ
ロックされるようになっていた。
● MySQL 5.5 で追加された Fast Index Creation では、セカンダリ
インデックスだけを構築するようになった。
– ただし、参照だけが可能という点は変わらない。
42. オンライン DDL
(MySQL 5.6)
● DDL 実行中にも更新ができるようになった。
●
これにより、長時間かかるであろう ALTER TABLE も、比較的
気軽に出来るようになった。
● ただし、 ALTER TABLE 開始時と終了時のみ、アクセスが排
他的になる。
– 長時間実行中の SELECT があると、 ALTER TABLE は待たさ
れてしまう。
43. Sorted Index Build
(New in MySQL 5.7)
● MySQL 5.6 までは、セカンダリインデックスへの挿入は、クラ
スタインデックスから順に 1 行ずつ読み取り、セカンダリイン
デックスへ挿入するというアルゴリズムだった。
– セカンダリインデックスへのアクセスがランダムアクセスに
なるので遅い上にフラグメンテーションが発生する
● MySQL 5.7 ではセカンダリインデックス構築のアルゴリズムが
改善された。
– クラスタインデックスからデータを読み取り、テンポラリファ
イルに格納
– セカンダリインデックスのキーの順にソート
– セカンダリインデックスへ、ソートされた状態で格納