Реляционные
          СУБД и их
          нереляционные
          реализации
          Олег Царёв



10.4.10
NoSQL это...
●   Эффективность
●   Простота
●   Масштабируемость
●   Популярность

    10.4.10
SQL
●   Можно выполнять запросы
●   Эффективные реализации
●   Типизированные данные
●   Наглядный и лаконичный синтаксис
...
Строчная архитектура
Партиция #1         Партиция #2




10.4.10
Колоночная архитектура
      Партиция #1            Партиция #2
Колонка #1 Колонка #2   Колонка #1 Колонка #2




10.4.10
Плюсы row-based
●   Эффективная выборка полных кортежей
●   Эффективное обновление данных
●   Предсказуемое время выполнен...
Плюсы column-based
●   Эффективная выборка частичных кортежей
●   Вертикальное шардирование данных
●   Эффективное расшире...
Реализации
    Строчные              Колоночные
●   PostgreSQL        ●   SyBase IQ
●   MySQL             ●   Monetdb
●   ...
Нереляционные аспекты
●
    Таблицы (table scan)
●   Расширения (extension)
●   Индексы (index scan / index join)
●   Хеш-...
Таблицы
●   Последовательная выборка из таблиц
●   Выбор из таблицы по региону
●   Кластерный индекс



10.4.10
Расширение (extension)
●   «Протаскиваем» Row ID вместо данных
●   По Row ID расширяем кортеж
●   Расширяем лишь когда это...
Индексы
●   B-Tree — большие объемы данных
●   R-Tree — геоинформация
●   GIN — полнотекстовой поиск
●   GiST — поиск по п...
Join
●   Merge
●   Merge-index
●   Index
●   Hash
●   Nested loop

10.4.10
Декомпозиция запросов
●   Сложные запросы разбиваются на простые
●   Простые запросы требуют один контейнер
●   Простых за...
Параллельное выполнение
●   CPU, RAM, IO — ключевая тройка
●   Ресурсы независимы
●   Управление ресурсами — задача оптими...
Общие данные
●   Большинство запросов имеют одинаковый план
●   Контейнеры используются совместно
●   Кеш запросов
●   Кеш...
Переупорядочевание
●   В запросах есть зависимость по данным
●   Порядок выполнения выбирает СУБД
●   Ресурсы не должны пр...
Выводы
●   В SQL базах доступны полноценные запросы
●   Простые запросы работают сравнимое время
●   Сложные запросы бьютс...
Вопросы?


          zabivator@gmail.com



10.4.10
Upcoming SlideShare
Loading in …5
×

Rit 2010 реляционные олег царев субд и их нереляционные реализации

449 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
449
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rit 2010 реляционные олег царев субд и их нереляционные реализации

  1. 1. Реляционные СУБД и их нереляционные реализации Олег Царёв 10.4.10
  2. 2. NoSQL это... ● Эффективность ● Простота ● Масштабируемость ● Популярность 10.4.10
  3. 3. SQL ● Можно выполнять запросы ● Эффективные реализации ● Типизированные данные ● Наглядный и лаконичный синтаксис 10.4.10
  4. 4. Строчная архитектура Партиция #1 Партиция #2 10.4.10
  5. 5. Колоночная архитектура Партиция #1 Партиция #2 Колонка #1 Колонка #2 Колонка #1 Колонка #2 10.4.10
  6. 6. Плюсы row-based ● Эффективная выборка полных кортежей ● Эффективное обновление данных ● Предсказуемое время выполнения ● Хорошее кеширование данных 10.4.10
  7. 7. Плюсы column-based ● Эффективная выборка частичных кортежей ● Вертикальное шардирование данных ● Эффективное расширение кортежей ● Большое число оптимизаций 10.4.10
  8. 8. Реализации Строчные Колоночные ● PostgreSQL ● SyBase IQ ● MySQL ● Monetdb ● MS SQL ● Oracle 10.4.10
  9. 9. Нереляционные аспекты ● Таблицы (table scan) ● Расширения (extension) ● Индексы (index scan / index join) ● Хеш-контейнеры (hash index / hash join) 10.4.10
  10. 10. Таблицы ● Последовательная выборка из таблиц ● Выбор из таблицы по региону ● Кластерный индекс 10.4.10
  11. 11. Расширение (extension) ● «Протаскиваем» Row ID вместо данных ● По Row ID расширяем кортеж ● Расширяем лишь когда это необходимо ● Расширять можно несколько раз 10.4.10
  12. 12. Индексы ● B-Tree — большие объемы данных ● R-Tree — геоинформация ● GIN — полнотекстовой поиск ● GiST — поиск по произвольному критерию ● Hash — linear hashing 10.4.10
  13. 13. Join ● Merge ● Merge-index ● Index ● Hash ● Nested loop 10.4.10
  14. 14. Декомпозиция запросов ● Сложные запросы разбиваются на простые ● Простые запросы требуют один контейнер ● Простых запросов конечное число ● Оптимизатор это делает автоматически 10.4.10
  15. 15. Параллельное выполнение ● CPU, RAM, IO — ключевая тройка ● Ресурсы независимы ● Управление ресурсами — задача оптимизатора ● Простые запросы выполняются без блокировок 10.4.10
  16. 16. Общие данные ● Большинство запросов имеют одинаковый план ● Контейнеры используются совместно ● Кеш запросов ● Кеш данных ● Статистика ● Гистограммы 10.4.10
  17. 17. Переупорядочевание ● В запросах есть зависимость по данным ● Порядок выполнения выбирает СУБД ● Ресурсы не должны простаивать ● Минимальное время отклика ● Минимальное время выполнения 10.4.10
  18. 18. Выводы ● В SQL базах доступны полноценные запросы ● Простые запросы работают сравнимое время ● Сложные запросы бьются на простые ● СУБД эффективно управляет ресурсами ● Запросы работают параллельно 10.4.10
  19. 19. Вопросы? zabivator@gmail.com 10.4.10

×