MENU

Fun & Interesting

Стоимостный оптимизатор в YDB — как, зачем и почему? / Павел Велихов / Yandex Infrastructure

Video Not Working? Fix It Now

YDB создавалась как OLTP-система для поддержки высоконагруженных проектов с большим объёмом транзакций. Обычно в таких системах запросы довольно простые, хотя все равно попадаются и аналитические запросы со значимым количеством соединений таблиц. Такие запросы довольно сложно оптимизировать вручную, и на помощь приходит стоимостный оптимизатор. Несколько лет назад мы также решили добавить колоночное хранение и сложную аналитику в YDB. В этом сценарии качественный стоимостный оптимизатор становится просто необходим, и требования к нему намного более серьёзные, чем в сценарии OLTP. Причем, поддерживая сразу строчное и колоночное хранение в одной СУБД, можно перейти в режим HTAP, где пользователь даже не знает, где будет исполняться его запрос — сверху строчного или колоночного хранилища — это решает как раз оптимизатор запросов. В этом докладе расскажем о том, как мы написали свой стоимостный оптимизатор для этих сценариев, какая у него текущая функциональность на данный момент, сравнимся с конкурентами в области OLTP-, OLAP- и HTAP-решений. highload.ru/moscow/2024/abstracts/13035

Comment