Mysql для высоконагруженных систем Метелкин Михаил Геннадьевич, Ведущий Web-разработчик mihail.metelkin@softline.ru.

Презентация:



Advertisements
Похожие презентации
Оптимизация MySQL Петр Зайцев Директор, Percona Ltd.
Advertisements

TagGonf: Гид по Гиту Алексей Феофанов веб-разработчик
Allsoft – электронная дистрибуция ПО в интернет. SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан,
Kanban Константин Попандопуло веб-разработчик
Построение системного ландшафта для высоко нагруженного проекта ООО «Ленвендо-Софт» Гаврилов Виталий Технический директор тел.: +7 (812)
Рефакторинг кода: когда и зачем Наталья Белозёрова веб-разработчик
ИТ - инфраструктура ЛПУ - фундамент информатизации здравоохранения Владимир Соловьев, Руководитель направления консалтинга Сибирь и Дальний Восток Москва.
Ряд стран, куда белорусы могут въезжать без виз: Азербайджан Армения Венесуэла Казахстан Кыргызстан Таджикистан Россия Китай Куба Сербия Черногория Грузия.
Как сделать свой сайт лучше? Принципы юзабилити веб-интерфейсов в примерах Олеся Чумаченко системный аналитик
10 – 11 КЛАССЫ Классный час, посвященный союзу независимых государств.
Приемы фотошопа для верстальщика Георгий Михайлов верстальщик
Миграционные процессы в современной России. 1. Ускорительная 2. Перераспределительная 3. Селективная 4. Экономическая 5. Социальная 6. «Сигнальная»
ПРИРОСТЫ НАСЕЛЕНИЯ INCREASES OF POPULATION Азербайджан/Azerbaijan Естественный прирост Natural increase (человек/persons) Миграционный прирост Net migration.
От виртуальной PBX к UC: формирование рынка объединённых коммуникаций Антон Салов Заместитель директора по новым технологиям.
Использование MySQL в сервисе дневников LiveInternet.ru Практика, практика, практика Гурьянов Андрей, программист Новиков Лев, системный администратор.
ЛИЦЕНЗИРОВАНИЕ ОБУЧЕНИЕ КОНСАЛТИНГ Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина,
Особенности использования TimesTen In-Memory Database в высоконагруженной среде Михаил Гранкин, QIWI.
SQL-injections for dummies. Что это? Способ несанкционированного доступа к данным, хранящимся в БД, основанный на внедрении в запрос произвольного SQL-
Корпоративный портал: специфика продвижения, возможности и сложности. В погоне за покупателем. Екатерина Типкова,
Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных.
Транксрипт:

Mysql для высоконагруженных систем Метелкин Михаил Геннадьевич, Ведущий Web-разработчик

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Архитектура Mysql

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Архитектура Mysql

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Mysql Engines (характеристики) MyISAM 1. Блокировка всей таблицы 2. Автоматическая проверка и восстановление таблиц 3. Поддерживает FULL-text индексы 4. Отложенная запись данных индексов 5. Компрессия MyISAM таблиц

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Mysql Engines (характеристики) InnoDB 1. Поддержка транзакций 2. Использование механизма MVCC 3. Поддержка внешних ключей

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Mysql Engines (характеристики) Memory Engine(HEAP) 1. Хранение данных в памяти 2. Поддержка Hash индексов 3. Поддержка только строк фиксированной длины (CHAR)

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Mysql Engines (характеристики) Archive Engine 1. Подержка только SELECT и INSERT запросов 2. Не поддерживает индексов 3. Поддержка блокировки на уровне строки

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Нахождение "узких мест производительности системы 1. Определение производительности 1. Транзакций в единицу времени 2. Время отклика 3. Расширяемость 4. Конкурентность 2. Профилирование 1. Полное время выполнения задачи 2. Время выполнения каждого запроса 3. Время открытия каждого соединения к mysql 4. Время вызова каждого внешнего ресурса (веб-сервисов и т.д.) 5. Вызов потенциально затратных функций 6. Системное время CPU

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Нахождение "узких мест производительности системы Инструменты для определения производительности 1. abb ( 2.http_load ( 3. JMeter ( 4. mysqlslap ( 5. Sysbench ( 6. Database Test Suite ( 7. MySQL Benchmark Suite ( benchmarks.html/ ) benchmarks.html/ 8. Super Smack (

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Нахождение "узких мест производительности системы Профилирование 1. Логирование запросов (general log, slow log ). Конфигурационные настройки : log = log-slow-queries = long_query_time = 2 log-queries-not-using-indexes log-slow-admin-statements Приложения: mysqldumpslow mysql_slow_log_filter ( )

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Нахождение "узких мест производительности системы Инструментыдля задач профилирования mysql_slow_log_parser ( ) mysqlsla ( SHOW STATUS mysql> FLUSH STATUS; mysql> SHOW SESSION STATUS LIKE 'Select%';

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Нахождение "узких мест производительности системы Инструментыдля задач профилирования 3. SHOW PROFILE mysql> SET profiling = 1;

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Оптимизация схемы и расстановка индексов 1. Выбор оптимальных типов данных 1. Наименьший из приемлемых типов данных 2. Наиболее простой из возможных 3. Избегайте Null по умолчанию 2. Расстановка индексов 1. Изоляция колонок в запросах 2. Наименьшая возможная длина индексов 3. Только необходимые индексы

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Оптимизация запросов 1. Выбирайте только необходимое количество строк 2. Всегда прописывайте те поля которые необходимы дл выборки 3. Особенно в запросах использующих JOIN 4. Правило идеального запроса- количество проверенных сервером строк количеству возвращенных строк 5. Полное сканирование таблиц – высшее зло! 6. Разбивайте очень сложные запросы на несколько составных 7. Производите операции с большими объемами данных частями

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Оптимизация запросов 8. Декомпозиция JOIN ов 9. Хранение результатов больших выборок в приложении 10. Проверка использования индексов при запросе 11. Использование Explain

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Репликация Репликация – синхронное/асинхронное копирование данных с ведущих серверов на ведомые. Решаемые задачи: 1. Распределение данных (географически). 2. Распределение нагрузки (Load balancing). 3. Backups 4. Отказоустойчивость 5. Тестирование апдейтов и новых версий Mysql.

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Партицирование Партицирование – разбиение данных таблиц на логические части по выбранным критериям Методы : 1. RANGE (По диапазону значений) 2. LIST (По точному списку значений) 3. HASH 4.KEY

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Шардинг Шардинг – разделение данных на уровне ресурсов Способы : 1. Вертикальный (Разделение таблиц по серверам) 2. Горизонтальный (Разделение логических частей данных по серверам)

SOFTWARE SERVICES EDUCATION CLOUD Россия, Азербайджан, Армения, Беларусь, Грузия, Казахстан, Кыргызстан, Таджикистан, Туркменистан, Узбекистан, Украина, Монголия, Турция, Венесуэла, Вьетнам, Египет, Румыния, Аргентина, Молдова, Колумбия Вопросы Вопросы?