Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемДенис Долгопольский
1 Оптимизация MySQL Петр Зайцев Директор, Percona Ltd.
2 Немного о Докладчике Создание веб-сайтов Сопровождение интернет-проектов Консалтинговые услуги – исследования, разработка стратегии продвижения и позиционирования в Интернете. Percona Ltd – Консалтинг в области производительности MySQL LAMP MySQL Inc – Консалтинг, Поддержка, Работа с партнерами по вопросам производительности SpyLOG.RU – Один из основателей, Тех. Директор в далеком 1999
3 Немного о Докладе Основы оптимизация MySQL –Что можно успеть рассказать за минут Как найти проблему ? Настройки MySQL Оптимизация схемы и запросов
4 Немного о Главном – Приглашаем работать с нами. Вам интересны вопросы производительности ? Вы отлично знаете MySQL и Unix/Linux ? PHP, Perl, Ruby или Java Владеете английским языком Самостоятельны в решении задач Свяжитесь с нами –
5 Поиск источника проблем А в MySQL ли дело ? –Инструментация приложений для определения составляющих времени запроса. –Возможность включения ее в боевой инсталляции В чем именно проблема –Пропускная способность (throughput) –Время отклика
6 Поиск проблемных запросов Лог файл медленных запросв –--log-slow-queries –long-query-time=1 Долгие запросы –--log-queries-not-using-indexes - Запросы не использующие индексы –Проблема может быть не в самых медленных запросах Патч позволяющий логгинг запросов с временем с точностью до миллисекунды
7 Анализ лога запросов Много инструментов – mysqldumpslow, mysqlsla, mysql_parse_slow etc Анализ долгих запросов –Надо знать их источник Анализ запросов дающих наибольшую нагрузку (аггрегайия) Анализ запросов обрабатывающих много строк
8 Настройка MySQL Не используйте MySQL с настройками по умолчанию –Если используете его более чем для хранения домашней DVD библиотеки Наиболее важно настроить потребление памяти Для большинства приложений нужно изменить несколько параметров –Не пытайтесь тюнить все
9 Важные параметры key_buffer_size – кэш индексов MyISAM –Используется для временных таблиц даже если все Innodb –Смотрите сколько misses/sec max_connections - сколько соединений разрешено параллельно table_cache – число открытых таблиц –См рост opened_tables sort_buffer_size –Буффер сортировки – на каждый поток
10 Еще немного важных параметров query_cache_size –Кэширование результатов запросов (если не используется умное кэширование в приложении innodb_buffer_pool_size –Кэшируются и данные и индексы innodb_log_file_size –Большой лог быстрее запись innodb_flush_log_at_trx_commit=2 –Не скидывать лог на диск при commit
11 Схема и запросы идут вместе Разрабатывая схему думайте о том как она будет использоваться –А не только об объектах и связях между ними Планируйте в терминах операций а не запросов –Часто есть много путей получения одного и того же результата
12 Базовая оптимизация схемы Использование подходящих типов данных –Возраст это tinyint а не varchar Правильная индексация –Убедитесь что индекс действиельно используется как вы думаете Нормализация или Де-нормализация Дополнительные агрегированные таблицы
13 Еще надо учесть JOIN – дорогая штука –Особенно когда требуется ввод/вывод –MySQL умеет использовать nested-loops Планируется ли что база данных будет в основном влезать в память ? –Производительность может резко упасть когда активная часть базы данных перестает влезать в память Фрагментация данных –OPTIMIZE TABLE
14 Оптимизация запросов EXPLAIN SELECT... –Научитесь читать и понимать –DELETE/UPDATE можно заменить на SELECT –Число строк а плане примерное SHOW LOCAL STATUS –Как именно запрос выполнялся на низком уровне –Handler_XXXX параметры
15 Любимые команды mysqladmin extended -i100 -r SHOW PROCESSLIST SHOW VARIABLES SHOW INNODB STATUS vmstat 10 iostat -x 10 mpstat 10
16 Время для Вопросов
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.