SlideShare a Scribd company logo
Горизонтальное
масштабирование
MySQL
Войденко Екатерина
Cистемный администратор



3 декабря 2011 года,
Санкт-Петербург, Я.Субботник
О чем мы с вами
    поговорим?



2
О чем речь?
    Нагрузка на базу?

          Это сколько?




3
О чем речь?
    Нагрузка на базу?
    ●   Неоптимизированные запросы
    ●   Неоптимизируемые запросы
        ●   Требующие группировки
    ●   Большое количество параллельных
        запросов




4
О чем речь?
    Что с архитектурой?
    ●   Когда нам задумываться о том, какую
        схему использовать?




         Понятное дело, что до запуска
                   проекта



5
О чем речь?
    Нужно ли нам тюниться?
    ●   Обстрел, смотрим во что мы упираемся




6
Нагрузка на чтение




7
Нагрузка на чтение
    Организация репликации


               Мастер




                        Реплики



8
Нагрузка на чтение
    Распределение запросов
    ●   наше ПО
                          INSERT INTO...
    ●   mysql-proxy (?)    INSERT INTO




                          SELECT

9
Нагрузка на чтение
 Балансировка
 ●   IPVS
 ●   HAProxy
 ●   mysql-proxy      Балансер




10
Нагрузка на запись




11
Нагрузка на запись
    Методы решения
●    Улучшение оборудования:
     Предупредите вашу бухгалтерию
     заранее ;-)
●    Партиционирование:
     Выжмем все соки из нашего железа!
●    Шардирование:
     Сначала порежем, а потом — выжмем!



12
Партиционирование




13
Партиционирование
 Что это?

 ●   Короткие индексы быстрее
     перестраивать
 ●   Разделы разносим по дискам
 ●   Создаем подпартиции
 ●   И все это из коробки!




14
Партиционирование
 Как?
●    Рассказать больше,
     чем mysql.com у меня
     все равно не выйдет



     Поэтому пройдемся по основным
     параметрам :)


15
Партиционирование
 Hash/KEY




16
Партиционирование
 Range/LIST


                     Раздел 1



                     Раздел 2




17
Шардирование




18
Шардирование
 Добавим серверов!
 ●   Принципиально невозможно без
     изменения кода
 ●   Позволяет практически неограниченно
     масштабироваться
 ●   Практически невозможно сделать
     postfactum




19
Шардирование
 А для чего?
 ●   Распределение нагрузки на запись
 ●   Когда «падает» один шард, мы либо
     теряем часть информации на запись,
     либо пишем в соседний




20
Шардирование
 Способы шардирования
 ●   Изначально задаем жесткое число
     шардов
 ●   Сразу задаем большее количество
     шардов, чем необходимо
 ●   Используем некоторую прослойку.
     Мета-базу




21
Шардирование
 Мета




22
Шардирование
 Выводы
 ●   Если нет исходников, мы почти
     безоружны
 ●   Если мы уже упираемся в нагрузку,
     нельзя очень быстро все изменить
 ●   При этом плюсы весьма внушительны




23
Вот и все




24
Вопросы?



25
Екатерина Войденко
Cистемный администратор


katyavoid@yandex-team.ru

More Related Content

PPT
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Ontico
 
PDF
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
RAMBLER&Co
 
PDF
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
Alex Chistyakov
 
PDF
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
ITCrowd Almaty
 
PDF
Разработка API для большого, нагруженного сервиса
endeveit
 
PPTX
От 40 до 2 секунд
oelifantiev
 
PDF
Павел Пушкарев "Отказоустойчивость сервисов"
Yandex
 
PDF
Дмитрий Долгов
CodeFest
 
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Ontico
 
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
RAMBLER&Co
 
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
Alex Chistyakov
 
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
ITCrowd Almaty
 
Разработка API для большого, нагруженного сервиса
endeveit
 
От 40 до 2 секунд
oelifantiev
 
Павел Пушкарев "Отказоустойчивость сервисов"
Yandex
 
Дмитрий Долгов
CodeFest
 

What's hot (20)

PDF
My talk on administering PostgreSQL
Alex Chistyakov
 
PDF
My talk on PgDay Russia 2014
Alex Chistyakov
 
PPTX
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Ontico
 
PDF
Remote Highload
Andrey Smirnov
 
PDF
Пример fuzzy testing для поиска URL в тексте
MoscowDjango
 
ODP
Fuzz testing
abrahamlinkoln
 
PDF
Роман Андриади — Деплой
Yandex
 
PDF
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
Mail.ru Group
 
PPTX
Why we did not choose Hadoop
Serguei Gitinsky
 
PDF
RTB DSP на языке Go: укрощение buzzwords
Daniel Podolsky
 
PPTX
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Anton Baranov
 
PPTX
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ontico
 
PDF
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Mail.ru Group
 
PDF
Zabbix в badoo, от lld к super discovery
Badoo Development
 
PPTX
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Ontico
 
PPTX
Особенности работы backend для мобильных приложений или Python Django UWSGI в...
Mail.ru Group
 
PDF
Что нового в MySQL 8.0? / Дмитрий Ленев (Oracle)
Ontico
 
PPTX
Приключения проекта от компьютера разработчика до серьезных нагрузок/ The pro...
Mad Devs
 
PPT
Использование различных СУБД в высоконагруженных проектах
Media Gorod
 
PDF
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
pgdayrussia
 
My talk on administering PostgreSQL
Alex Chistyakov
 
My talk on PgDay Russia 2014
Alex Chistyakov
 
Приключения проекта от компьютера разработчика до серьезных нагрузок / Андрей...
Ontico
 
Remote Highload
Andrey Smirnov
 
Пример fuzzy testing для поиска URL в тексте
MoscowDjango
 
Fuzz testing
abrahamlinkoln
 
Роман Андриади — Деплой
Yandex
 
«Взломать за 60 секунд», Артем Кулаков, Redmadrobot
Mail.ru Group
 
Why we did not choose Hadoop
Serguei Gitinsky
 
RTB DSP на языке Go: укрощение buzzwords
Daniel Podolsky
 
Организация надежного резервного копирования веб-проекта. Практика и подводны...
Anton Baranov
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ontico
 
Что отличает джуниора от сениора или как питонисту не иметь проблем с поиском...
Mail.ru Group
 
Zabbix в badoo, от lld к super discovery
Badoo Development
 
Как сделать сложное простым. История создания Проект1917 / Сергей Спорышев (I...
Ontico
 
Особенности работы backend для мобильных приложений или Python Django UWSGI в...
Mail.ru Group
 
Что нового в MySQL 8.0? / Дмитрий Ленев (Oracle)
Ontico
 
Приключения проекта от компьютера разработчика до серьезных нагрузок/ The pro...
Mad Devs
 
Использование различных СУБД в высоконагруженных проектах
Media Gorod
 
PG Day'14 Russia, PostgreSQL: архитектура, настройка и оптимизация, Илья Косм...
pgdayrussia
 
Ad

Similar to Екатерина Войденко "Горизонтальное масштабирование MySQL" (20)

PDF
My talk on HBase ops engineering at TBD Jun 2016
Alex Chistyakov
 
PDF
Top-10 популярных вопросов администраторам баз данных или почему я против св...
Ilya Kosmodemiansky
 
PDF
SaltStack vs Chef, HappyDev 2013
Alex Chistyakov
 
PDF
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
it-people
 
PDF
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
Alex Chistyakov
 
PDF
My talk on Hadoop stack operations engineering at OSPCon
Alex Chistyakov
 
PDF
2 bdw.key
antishmanti
 
PDF
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
Омские ИТ-субботники
 
PDF
Говорим о СУБД языком HR
Konstantin Osipov
 
PPTX
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
IT-Portfolio
 
PDF
Meet Magento Belarus - Andriy Samilyak
Amasty
 
PDF
Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...
Ontico
 
PDF
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Ontico
 
PPTX
Open source субд глазами обычного программиста
Slach
 
PDF
20120226 information retrieval raskovalov_lecture03-04
Computer Science Club
 
PDF
Pgconfru 2015 kosmodemiansky
PostgreSQL-Consulting
 
PDF
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Ontico
 
PDF
20111002 information retrieval raskovalov_lecture3
Computer Science Club
 
PPTX
Daemons In Web on #devrus
Alex Chistyakov
 
ODP
My talk on LeoFS, HappyDev 2014
Alex Chistyakov
 
My talk on HBase ops engineering at TBD Jun 2016
Alex Chistyakov
 
Top-10 популярных вопросов администраторам баз данных или почему я против св...
Ilya Kosmodemiansky
 
SaltStack vs Chef, HappyDev 2013
Alex Chistyakov
 
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
it-people
 
"Мы два месяца долбались, а потом построили индекс" (c) Аксенов
Alex Chistyakov
 
My talk on Hadoop stack operations engineering at OSPCon
Alex Chistyakov
 
2 bdw.key
antishmanti
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
Омские ИТ-субботники
 
Говорим о СУБД языком HR
Konstantin Osipov
 
20 апреля, DEV {highload}, "Демоны в большом проекте – проблемы и их решения ...
IT-Portfolio
 
Meet Magento Belarus - Andriy Samilyak
Amasty
 
Преимущества и недостатки микросервисной архитектуры в HeadHunter / Антон Ива...
Ontico
 
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Ontico
 
Open source субд глазами обычного программиста
Slach
 
20120226 information retrieval raskovalov_lecture03-04
Computer Science Club
 
Pgconfru 2015 kosmodemiansky
PostgreSQL-Consulting
 
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
Ontico
 
20111002 information retrieval raskovalov_lecture3
Computer Science Club
 
Daemons In Web on #devrus
Alex Chistyakov
 
My talk on LeoFS, HappyDev 2014
Alex Chistyakov
 
Ad

More from Yandex (20)

PDF
Предсказание оттока игроков из World of Tanks
Yandex
 
PDF
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Yandex
 
PDF
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Yandex
 
PDF
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Yandex
 
PDF
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
 
PDF
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Yandex
 
PDF
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
PDF
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Yandex
 
PDF
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Yandex
 
PDF
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Yandex
 
PDF
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Yandex
 
PDF
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Yandex
 
PDF
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
PDF
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Yandex
 
PDF
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Yandex
 
PDF
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Yandex
 
PDF
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Yandex
 
PDF
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Yandex
 
PDF
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Yandex
 
PDF
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Yandex
 
Предсказание оттока игроков из World of Tanks
Yandex
 
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...
Yandex
 
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров Яндекса
Yandex
 
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров Яндекса
Yandex
 
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...
Yandex
 
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...
Yandex
 
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...
Yandex
 
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...
Yandex
 
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...
Yandex
 
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...
Yandex
 
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...
Yandex
 
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...
Yandex
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...
Yandex
 
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...
Yandex
 
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...
Yandex
 
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...
Yandex
 
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...
Yandex
 
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...
Yandex
 
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
Yandex
 

Екатерина Войденко "Горизонтальное масштабирование MySQL"