InnoDB и Iceberg: как я переписал аналитику с OLTP на OLAP
Same Job, Two Engines: InnoDB and Iceberg Internals

Автор делится опытом миграции аналитического пайплайна с InnoDB на стек Iceberg, MinIO и Polaris. В первой версии он использовал OLTP-движок, но после осознания, что аналитические запросы читают лишь 2–3 столбца из множества, решил перейти на OLAP. Статья подробно разбирает внутренности обоих движков: гарантии InnoDB, включая MVCC и undo log, и архитектуру lakehouse с манифестами, data-файлами и split planning.
Без этого знания я спроектировал свою базу данных InnoDB, используя фундаментальный принцип OLAP.
- sgarland
> Три гарантии InnoDB
Строки хранят все столбцы вместе
Не гарантируется. Форматы строк DYNAMIC (по умолчанию) и COMPRESSED [0] могут выносить большие значения столбцов переменной длины в off-page записи. В приведённом примере этого не произошло бы, но это не гарантия как таковая. Это примерно эквивалентно Postgres' TOAST, хотя порог TOAST по умолчанию в Postgres составляет 1/4 страницы (2 KiB при размере страницы по умолчанию 8 KiB), тогда как в InnoDB — 1/2 страницы (8 KiB при размере страницы по умолчанию 16 KiB).
0: https://dev.mysql.com/doc/refman/9.7/en/innodb-row-format.ht...
- wood_spirit
Мне нравится взгляд на личный путь изучения нового и обмена этим.
В качестве следующих шагов я бы предложил попробовать DuckDB. Подозреваю, что на таком масштабе он уделает spark и прочих. Всегда полезно изучать разные уголки ландшафта данных.