同じ仕事、2つのエンジン:InnoDBとIcebergの内部構造

Same Job, Two Engines: InnoDB and Iceberg Internals

同じ仕事、2つのエンジン:InnoDBとIcebergの内部構造

OLTPエンジンのInnoDBからOLAPスタックのIcebergへと分析基盤を移行した経験を、両者の内部構造の違いから解説する。InnoDBのMVCCやB-treeインデックス、Icebergのマニフェストとデータファイルによる多層的なクエリ最適化を比較し、分析ワークロードに適したエンジン選択の重要性を説く。

5年目にして、自分の分析作業はテーブルごとに2、3列しか使っていないのに、毎回すべての列を読まされていることに気づいた。
  1. sgarland

    > InnoDBの3つの保証

    行はすべてのカラムをまとめて保存する

    これは保証されていない。DYNAMIC(デフォルト)およびCOMPRESSED行フォーマット[0]では、可変長カラムのより大きな値をオフページレコードに移動させることがある。与えられた例ではこれは起こらないだろうが、それ自体は保証ではない。これはおおよそPostgresのTOASTに相当するが、PostgresのTOASTのデフォルトしきい値はページの1/4(デフォルトの8 KiBページサイズで2 KiB)であるのに対し、InnoDBはページの1/2(デフォルトの16 KiBページサイズで8 KiB)である。

    0: https://dev.mysql.com/doc/refman/9.7/en/innodb-row-format.ht...

  2. wood_spirit

    新しいことを学び、それを共有する個人的な旅を垣間見ることができて良いですね。

    次のステップとしては、代わりにDuckDBを試してみることをお勧めします。私の推測では、この規模ではSparkなどを圧倒するでしょう。データランドスケープの異なる角落を学ぶのは常に良いことです。

この日のほかの記事

2026-10-14