Upload
rit2010
View
743
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Олег Царёв
10.4.10
Реляционные СУБД и их нереляционные реализации
10.4.10
NoSQL это...● Эффективность● Простота● Масштабируемость● Популярность
10.4.10
SQL● Можно выполнять запросы● Эффективные реализации● Типизированные данные● Наглядный и лаконичный синтаксис
10.4.10
Строчная архитектураПартиция #1 Партиция #2
10.4.10
Колоночная архитектура
Колонка #1 Колонка #2 Колонка #1 Колонка #2Партиция #1 Партиция #2
10.4.10
Плюсы row-based● Эффективная выборка полных кортежей● Эффективное обновление данных● Предсказуемое время выполнения● Хорошее кеширование данных
10.4.10
Плюсы column-based● Эффективная выборка частичных кортежей● Вертикальное шардирование данных● Эффективное расширение кортежей● Большое число оптимизаций
10.4.10
РеализацииСтрочные
● PostgreSQL
● MySQL
● MS SQL
● Oracle
Колоночные
● SyBase IQ● Monetdb
10.4.10
Нереляционные аспекты● Таблицы (table scan)● Расширения (extension)● Индексы (index scan / index join)● Хеш-контейнеры (hash index / hash join)
10.4.10
Таблицы● Последовательная выборка из таблиц● Выбор из таблицы по региону● Кластерный индекс
10.4.10
Расширение (extension)● «Протаскиваем» Row ID вместо данных● По Row ID расширяем кортеж● Расширяем лишь когда это необходимо● Расширять можно несколько раз
10.4.10
Индексы● B-Tree — большие объемы данных● R-Tree — геоинформация● GIN — полнотекстовой поиск● GiST — поиск по произвольному критерию● Hash — linear hashing
10.4.10
Join● Merge● Merge-index● Index● Hash● Nested loop
10.4.10
Декомпозиция запросов● Сложные запросы разбиваются на простые● Простые запросы требуют один контейнер● Простых запросов конечное число● Оптимизатор это делает автоматически
10.4.10
Параллельное выполнение● CPU, RAM, IO — ключевая тройка● Ресурсы независимы● Управление ресурсами — задача оптимизатора● Простые запросы выполняются без блокировок
10.4.10
Общие данные● Большинство запросов имеют одинаковый план● Контейнеры используются совместно● Кеш запросов● Кеш данных● Статистика● Гистограммы
10.4.10
Переупорядочевание● В запросах есть зависимость по данным● Порядок выполнения выбирает СУБД● Ресурсы не должны простаивать● Минимальное время отклика● Минимальное время выполнения
10.4.10
Выводы● В SQL базах доступны полноценные запросы● Простые запросы работают сравнимое время● Сложные запросы бьются на простые● СУБД эффективно управляет ресурсами● Запросы работают параллельно