Почему СУБД такие медленные
Недавно на Хабре публиковался перевод статьи «Просто выберите Postgres» ( оригинал , англ. яз) с аргументами, что Postgres — оптимальная БД для десктопных и мобильных приложений. Аналогичное мнение высказывают в других популярных статьях вроде «До свидания MongoDB, здравствуй PostgreSQL» . Главным недостатком SQLite называют то, что данные хранятся в одном файле, а MongoDB (а также DynamoDB и Cassandra) — низкую производительность: «Всё это связано с тем, что подобные базы данных, по сути, представляют собой огромную распределённую хеш-таблицу. Единственные операции, работающие без необходимости сканирования всей базы данных — это поиск по секционному ключу и сканы, при которых используется ключ сортировки. …Если паттерны доступа существенно изменятся, то может потребоваться полная повторная обработка всех данных». Более производительные резидентные БД хранят данные в памяти (Redis, Valkey), но их использование ограничено объёмом ОЗУ. После такого заявления интересно посмотреть на независимые тесты производительности разных СУБД.
https://habr.com/ru/companies/ruvds/articles/851330/
#MySQL #MongoDB #PostgreSQL #DynamoDB #Cassandra #PostgreSQL_17 #LeanStore #SSD #NVMe #SPDK #SATA #PCIe #SQLite #Redis #Valkey #резидентная_БД #IMDB #UmbraDB #CedarDB #TPCH #TPCDS #соединение_хештаблиц #структуры_данных #DuckDB #OrioleDB #ruvds_статьи
Simple, Efficient, and Robust Hash Tables for Join Processing Hash tables are probably the most versatile data structures for data processing. For that reason, CedarDB depends on hash table to perform some of the most crucial parts of its query execution engine. Most prominently, CedarDB implements relational joins as hash joins. This blog post assumes you know what a hash join is. If not, the Wikipedia article has a short introduction into the topic for you.