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
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
PDF
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
PDF
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
PDF
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
PDF
Разработка API для большого, нагруженного сервиса
PPTX
От 40 до 2 секунд
PDF
Павел Пушкарев "Отказоустойчивость сервисов"
PDF
Дмитрий Долгов
Как поддерживать и развивать пачку "похожих" проектов. Кластер или конгломера...
Rambler.iOS #9: Нужны ли бэкенд-разработчики, когда есть Swift?
My talk on DevOps engineer's adventures in the Windows world at UWDC 2017
Колёса: Раньше и сейчас. Как поменять архитектуру высоконагруженного проекта
Разработка API для большого, нагруженного сервиса
От 40 до 2 секунд
Павел Пушкарев "Отказоустойчивость сервисов"
Дмитрий Долгов

What's hot (20)

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

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

ODP
Scaling Web Sites By Sharding And Replication Hl2008 Rus
PDF
High load2007 scaling-web-applications-rus
PPTX
Масштабирование баз данных. (Database Scalability)
PDF
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
PPT
Быстрое масштабирование систем
PDF
HighLoad systems: tips & tricks
PPT
Web20 from zero
PPT
Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)
PDF
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
PPTX
Web application scalability
PPT
phpConf 2010 Классификация систем хранения
PDF
шардинг на коленке
PDF
WebCamp:Back-end Developers Day. Петровский Анатолий "Как построить хайлоад и...
PPT
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
PPTX
Software craftsmanship 7
PDF
Aлександр Зайцев, LifeStreet
PDF
Учебный день конференции HighLoad++ 2013
PPT
распределенная архитектура Lamp приложений петр зайцев
PDF
High Load 2009 Imdg Presentation
PPT
Rybak Big Projects New
Scaling Web Sites By Sharding And Replication Hl2008 Rus
High load2007 scaling-web-applications-rus
Масштабирование баз данных. (Database Scalability)
Горизонтальное масштабирование: что, зачем, когда и как /Александр Макаров (Y...
Быстрое масштабирование систем
HighLoad systems: tips & tricks
Web20 from zero
Практическое создание крупного масштабируемого web 2.0 c нуля (Дмитрий Бородин)
Cравнительный анализ хранилищ данных (Олег Царев, Кирилл Коринский)
Web application scalability
phpConf 2010 Классификация систем хранения
шардинг на коленке
WebCamp:Back-end Developers Day. Петровский Анатолий "Как построить хайлоад и...
Практическое создание крупного масштабируемого web 20 c нуля, Дмитрий Бородин
Software craftsmanship 7
Aлександр Зайцев, LifeStreet
Учебный день конференции HighLoad++ 2013
распределенная архитектура Lamp приложений петр зайцев
High Load 2009 Imdg Presentation
Rybak Big Projects New
Ad

More from Yandex (20)

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

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