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

Содержание

Архитектура Mysql

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


Слайд 2Архитектура Mysql


Слайд 3Архитектура Mysql



Слайд 4Mysql Engines (характеристики)
MyISAM
Блокировка всей таблицы
Автоматическая проверка и востановление таблиц
Поддерживает FULL-text

индексы
Отложенная запись данных индексов
Компрессия MyISAM таблиц

Слайд 5Mysql Engines (характеристики)
InnoDB
Поддержка транзакций
Использование механизма MVCC
Поддержка внешних ключей


Слайд 6Mysql Engines (характеристики)
Memory Engine(HEAP)
Хранение данных в памяти
Поддержка Hash индексов
Поддержка только

строк фиксированной длины (CHAR)

Слайд 7Mysql Engines (характеристики)
Archive Engine
Подержка только SELECT и INSERT запросов
Не поддерживает

индексов
Поддержка блокировки на уровне строки

Слайд 8Нахождение "узких мест“ производительности системы
Определение производительности
Транзакций в единицу времени
Время отклика
Расширяемость
Конкурентность
Профилирование
Полное время

выполнения задачи
Время выполнения каждого запроса
Время открытия каждого соединения к mysql
Время вызова каждого внешнего ресурса (веб-сервисов и т.д.)
Вызов потенциально затратных функций
Системное время CPU

Слайд 9Нахождение "узких мест“ производительности системы
“Инструменты” для определения производительности

аb (http://httpd.apache.org/docs/2.0/programs/ab.html)
http_load (http://www.acme.com/software/http_load/)
JMeter (http://jakarta.apache.org/jmeter/)
mysqlslap

(http://dev.mysql.com/doc/refman/5.1/en/mysqlslap.html)
Sysbench (http://sysbench.sourceforge.net/)
Database Test Suite (http://sourceforge.net/projects/osdldbt/)
MySQL Benchmark Suite (http://dev.mysql.com/doc/en/mysql-benchmarks.html/ )
Super Smack (http://vegan.net/tony/supersmack/)


Слайд 10Нахождение "узких мест“ производительности системы
Профилирование

Логирование запросов (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 (http://www.mysqlperformanceblog.com/files/utils/mysql_slow_log_filter )





Слайд 11Нахождение "узких мест“ производительности системы
“Инструменты”для задач профилирования
mysql_slow_log_parser
(http://www.mysqlperformanceblog.com/files/utils/mysql_slow_log_parser ) mysqlsla (http://hackmysql.com/mysqlsla)

SHOW STATUS
mysql> FLUSH

STATUS;
mysql> SHOW SESSION STATUS LIKE 'Select%';












Слайд 12Нахождение "узких мест“ производительности системы
“Инструменты”для задач профилирования
SHOW PROFILE

mysql> SET profiling =

1;













Слайд 13Оптимизация схемы и расстановка индексов
Выбор оптимальных типов данных
Наименьший из приемлимых типов

данных
Наиболее простой из возможных
Избегайте Null по умолчанию

Расстановка индексов
Изоляция колонок в запросах
Наименьшая возможная длина индексов
Только необходимые индексы


Слайд 14Оптимизация запросов
Выбирайте только необходимое количество строк
Всегда прописывайте те поля которые необходимы

дл выборки
Особенно в запросах использующих JOIN
Правило “идеального запроса”- количество проверенных сервером строк ≈ количеству возвращенных строк
Полное сканирование таблиц – высшее зло!
Разбивайте очень сложные запросы на несколько составных
Производите операции с большими объемами данных частями

Слайд 15Оптимизация запросов
Декомпозиция JOIN’ ов
Хранение результатов больших выборок в приложении
Проверка использования индексов

при запросе
Использование Explain



Слайд 16Репликация

Репликация – синхронное/асинхронное копирование данных с ведущих серверов на ведомые.

Решаемые задачи:
Распределение

данных (географически).
Распределение нагрузки (Load balancing).
Backups
Отказоустойчивость
Тестирование апдейтов и новых версий Mysql.





Слайд 17Партицирование
Партицирование – разбиение данных таблиц на логические части по выбранным критериям

Методы:
RANGE

(По диапазону значений)
LIST (По точному списку значений)
HASH
KEY


Слайд 18Шардинг
Шардинг – разделение данных на уровне ресурсов

Способы:
Вертикальный (Разделение таблиц по серверам)
Горизонтальный

(Разделение логических частей данных по серверам)

Слайд 19Вопросы






Вопросы?


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика