Пояснение | MySQL-хранилище, предназначенное для организации обработки и выполнения аналитических запросов над большими массивами данных (Data Warehouse). InfiniDB подходит для создания хранилища для средств бизнес-аналитики, организации систем генерации отчетов и использования в программах с интенсивным чтением данных из БД. Слабое место InfiniDB - производительность добавления данных. Исходные тексты разработки распространяются в рамках лицензии GPL v2.
В отличие от других хранилищ, InfiniDB хранит данные не построчно, а с разбивкой по столбцам, что позволяет оптимизировать выполнение группировки по столбцам из БД большого размера (сотни гигабайт). Особенно эффективен подобный подход, когда данные в столбцах повторяются. Кроме построчного хранения с целью оптимизации операций ввода/вывода в InfiniDB поддерживается автоматическое вертикальное и горизонтальное партицирование больших таблиц, позволяющее логически распределять данные по хранилищам в привязке к диапазонам хранимых значений. При партицировании не требуется ручное проектирование схемы БД или определение места размещения хранилищ.
Другие особенности InfiniDB:
- Многопоточная организация работы, позволяющая максимально использовать ресурсы многоядерных систем;
- Поддержка выполнения множества одновременных запросов, лимит выполнения конкурирующих запросов ограничен только мощностью сервера;
- В комплект входит специальный инструмент для отдачи больших объемов данных с высокой скоростью;
- Поддержка всех DML операций (insert, update, delete);
- Поддержка ACID-совместимых транзакций и система обнаружения взаимных блокировок (deadlock);
- Предоставление средств для автоматического восстановления базы в случае сбоя системы (например, внезапного отключения питания);
- Мультиверсионный (MVCC) дизайн позволяет избежать блокировки при чтении данных, всегда отдается текущий "снапшот" состояния, одновременно вносимые изменения будут отражены уже в другом снапшоте;
- Отсутствует необходимость в создании индексов, так как индексация при вертикальном и горизонтальном партицировании производится автоматически;
- Поддержка конструкция по изменению налету структуры таблиц (ALTER TABLE);
- Прозрачное сжатие с выбором метода сжатия в зависимости от типа хранимых данных;
- Набор средств для диагностики производительности, формирования подсказок по тюнингу, выполнения трассировки для выявления неоптимальных SQL запросов;
- Реализация в виде обычного MySQL-хранилища, подразумевает возможность прозрачного использования во всех приложениях, поддерживающих MySQL.
|