'

Пример разработки высоконагруженной реляционной базы данных

Понравилась презентация – покажи это...





Слайд 0

Пример разработки высоконагруженной реляционной базы данных Белоусов Павел


Слайд 1

Краткое содержанние Постановка задачи Проблемы Решение проблем


Слайд 2

Наша задача ОБД РБД


Слайд 3

А зачем? Поиск по связанным объектам Проверка целостности


Слайд 4


Слайд 5


Слайд 6

Task-Based система Отмечаются изменения в ОБД На основе изменений создаются задачи Задачи обрабатываются Данные синхронизируются в РБД


Слайд 7

Поиск по иерархическим данным Создали схему Создали индексы Проверили, что всё работает быстро Сдали в продакшн


Слайд 8


Слайд 9

Прошел год...


Слайд 10


Слайд 11

Проблемы Запросы на поиск выполняются по несколько минут Данные синхронизируются с большой задержкой Ребилд индексов работает по 12 часов


Слайд 12

Нагрузка Было 1-2 M задач ~10 потоков ~10сек на поиск 1 мин на репликацию Стало 50+ M задач 25 потоков 3+ мин на поиск 1+ час на репликацию


Слайд 13


Слайд 14

Оптимизация запросов Денормализация Настройка индексов Рефакторинг запросов


Слайд 15

Денормализация Name: ParentNode Name: Node A Name: Node B Type: A Type: B


Слайд 16

Настройка индексов SQL Server Profiler Execution Plan Index Tuning Advisor Index Tuning


Слайд 17

Рефакторинг запросов Все ли поля из запроса нужны Все ли JOIN’ы нужны Используйте Full Text Search вместо LIKE Пересмотрите работу с временными таблицами Попробуйте разбить запрос


Слайд 18

Запросы на поиск Было 3 мин Стало < 30 сек


Слайд 19

Переработка системы задач Рефакторинг схемы Рефакторинг алгоритма Устранение блокировок


Слайд 20

Рефакторинг схемы


Слайд 21

Рефакторинг алгоритма Использование грязного чтения Группировка задач Отказ от TABLOCK’ов


Слайд 22

Группировка задач Node A – Data 1 Node A – Data 2 Node A – Data 3 … Node A – Data N


Слайд 23

Устранение блокировок Научились воспроизводить deadlock’и Определили конфликтующие запросы Переписали запросы


Слайд 24

Устранение блокировок


Слайд 25

Что получилось? Часть данных реплицируется за 1 минуту Не критичные – за час


Слайд 26


Слайд 27

Не оставляйте технических долгов


Слайд 28

Следите за производительностью


Слайд 29

Изучайте матчасть Индексы Уровни изоляции Блокировки и взаимные блокировки Планы выполнения


Слайд 30

Спасибо за внимание Белоусов Павел pavel.mephi@gmail.com http://twitter.com/pavelbelousov http://pavelbelousov.wordpress.com/


×

HTML:





Ссылка: