SlideShare a Scribd company logo
Павел Пушкарев - Базы данных: легковесная реляционная высокопроизводительная СУБД MySQL
Легковесная 
реляционная СУБД 
MySQL 
Павел Пушкарев
Архитектура MySQL 
Архитектура MySQL 
представлена справа ;-) 
Отличительная 
особенность — 
различные хранилища 
данных 
3 
MySQL 
клиенты 
Пул соединений 
Парсер и оптимизатор 
MyISAM InnoDB Memory
О чем пойдет речь 
• Хранилище MyISAM 
• Хранилище InnoDB 
• Резервные копии 
4
Хранилище MyISAM 
Простые файлики
Таблички MyISAM 
CREATE TABLE foo (a INT KEY) ENGINE=MyISAM; 
SHOW VARIABLES LIKE 'key_buffer%'; 
6 
структура: *.frm 
данные: *.MYD 
индексы: *.MYI 
диск 
озу 
буфер ключей 
файловый кэш 
Таблица 
MyISAM
Работа с MyISAM 
MyISAM: 
• Блокируется на каждую 
операцию 
• Возможны 
одновременные чтения 
• Возможна запись в 
конец таблицы 
7
Работа с MyISAM 
MyISAM: 
• Блокируется на каждую 
операцию 
• Возможны 
одновременные чтения 
• Возможна запись в 
конец таблицы 
8 
Потоки 
1 2 ... N W 
время
Хранилище InnoDB 
Транзакции и кислота
Таблички InnoDB 
CREATE TABLE foo (a INT KEY) ENGINE=InnoDB; 
SHOW VARIABLES LIKE 'innodb_buffer%'; 
SHOW VARIABLES LIKE 'innodb_log_buffer%'; 
10 
структура: *.frm 
tablespace: ibdata 
tablespace: *.ibd 
журнал: ib_logfile 
диск 
озу 
буфер InnoDB 
буфер журнала 
Таблица 
InnoDB
Работа с InnoDB 
InnoDB: 
• Полностью 
поддерживает ACID 
• Использует основной 
ключ как кластерный 
индекс 
• Внешние ключи и 
ссылочная целостность 
• MVCC 
11
Работа с InnoDB 
InnoDB: 
• Полностью 
поддерживает ACID 
• Использует основной 
ключ как кластерный 
индекс 
• Внешние ключи и 
ссылочная целостность 
• MVCC 
12 
ОЗУ 
InnoDB buffer pool 
Log buffer pool 
Tablespace 
Диск 
Undo 
Doublewrite 
Transaction log (Redo)
Работа с InnoDB 
InnoDB: 
• Полностью 
поддерживает ACID 
• Использует основной 
ключ как кластерный 
индекс 
• Внешние ключи и 
ссылочная целостность 
• MVCC 
13 
ОЗУ 
InnoDB buffer pool 
Log buffer pool 
Tablespace 
Диск 
Undo 
Transaction log (Redo) 
1 
Doublewrite 
4 
3 
2
Резервные копии 
И восстановление на момент времени
Грустная и скучная теория 
Бэкапы бывают двух видов: 
• Текстовые 
- mysqldump 
• Бинарные 
- mysqlhotcopy 
- xtrabackup 
15 
SELECT * 
cp /var/lib/mysql/*
Журнал изменений 
Binary log: 
• Пишется на все 
изменения в базе 
• Бывает row, 
statement и mixed 
• mysqlbinlog 
помогает читать 
16
Пример адского бэкапа 
innobackupex /var/lib/mysql /var/backups 
innobackupex --apply-log /var/backups/{dirname} 
chown -R mysql /var/backups/{dirname} 
cp -a /var/backups/{dirname} /var/lib/mysql 
mysqlbinlog /var/log/mysql-bin.*  
--stop-position={position} | mysql 
17 
Backup 
Restore
Спасибо за внимание!

More Related Content

PPTX
Kolibri OS
PPTX
07 virtual hosts_ru
PDF
Обзор Btrfs
PPT
PPT
Распределенное хранилище Ceph. Обзор и практические способы использования
PPTX
Совместимы ли понятия SDS и производительность?
PDF
Зачем нужны постпроцессоры при живых препроцессорах — Алексей Иванов, JetStyle
Kolibri OS
07 virtual hosts_ru
Обзор Btrfs
Распределенное хранилище Ceph. Обзор и практические способы использования
Совместимы ли понятия SDS и производительность?
Зачем нужны постпроцессоры при живых препроцессорах — Алексей Иванов, JetStyle

What's hot (20)

PDF
Хранилище 101
PPTX
История веб-браузеров
ODP
Systemd. Структура и применение
PDF
Операционная система GNU/Linux: устройство и функционирование
PPTX
Современная разработка сайтов на CMF Drupal.
PDF
03 - Установка Xcode
PPT
Оживление сайтов
PDF
Управление образами виртуальных машин: libguestfs, virt-tools
ODP
Krizhanovsky Vm
PDF
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
PPTX
06 php instalation_ru
PPTX
04 web server_deployment_ru
PPT
Introduction to MongoDB
ODP
Alexander Krizhanovsky Krizhanovsky Hpds
PDF
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
PDF
Расширение границ возможного с EMC XtremIO
PPTX
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
PDF
JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"
PDF
Анатомия веб сервиса (HighLoad-2014)
PPTX
High Availability в жизни обычного разработчика
Хранилище 101
История веб-браузеров
Systemd. Структура и применение
Операционная система GNU/Linux: устройство и функционирование
Современная разработка сайтов на CMF Drupal.
03 - Установка Xcode
Оживление сайтов
Управление образами виртуальных машин: libguestfs, virt-tools
Krizhanovsky Vm
Sphinx для высоко-нагруженных и масштабируемых проектов, Вячеслав Крюков
06 php instalation_ru
04 web server_deployment_ru
Introduction to MongoDB
Alexander Krizhanovsky Krizhanovsky Hpds
NoSQL - коротко о главном / Сергей Туленцев (TextMaster)
Расширение границ возможного с EMC XtremIO
Как устроена MySQL-репликация / Андрей Аксенов (Sphinx)
JS Lab`16. Андрей Копенкин: "RethinkDB + Socket.io. Real-time web 2.0"
Анатомия веб сервиса (HighLoad-2014)
High Availability в жизни обычного разработчика
Ad

Similar to Павел Пушкарев - Базы данных: легковесная реляционная высокопроизводительная СУБД MySQL (20)

PDF
Что нужно знать о трёх топовых фичах MySQL
PDF
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
PDF
Как делать backup MySQL
PDF
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
PDF
Devconf2010 mariadb-extra-features
PDF
Percona XtraBackup: экспертные возможности (Алексей Копытов)
PDF
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
PDF
Purely practical data structures
PDF
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
PPTX
DB2 BLU Explained
PDF
MySQL 101
PDF
Введение в отладку производительности MySQL приложений
PDF
6. InterBase 2017 (Дмитрий Кузьменко)
ODP
Wonderful World Of Mysql Storage Engines Hl2008 Rus
PDF
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
PDF
Devconf2013 new-features-in-mysql-and-mariadb
PPTX
High Load
PDF
Оптимизация – стоимость владения
PDF
"Производительность MySQL: что нового?"
PDF
Nikita Tarakanov - Kernel Pool Overflow from Windows XP to Windows 8
Что нужно знать о трёх топовых фичах MySQL
DevConf-2015: Lightning Memory-Mapped Database (LMDB), ReOpen IT
Как делать backup MySQL
Асинхронная репликация без цензуры: архитектурные проблемы MySQL, или почему ...
Devconf2010 mariadb-extra-features
Percona XtraBackup: экспертные возможности (Алексей Копытов)
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Purely practical data structures
SQL-ник DevDay. Рубцов. Новое в Percona Server и MariaDB в сравнении с MySQL 5.5
DB2 BLU Explained
MySQL 101
Введение в отладку производительности MySQL приложений
6. InterBase 2017 (Дмитрий Кузьменко)
Wonderful World Of Mysql Storage Engines Hl2008 Rus
Асинхронная репликация без цензуры, Олег Царёв (Mail.ru Group)
Devconf2013 new-features-in-mysql-and-mariadb
High Load
Оптимизация – стоимость владения
"Производительность MySQL: что нового?"
Nikita Tarakanov - Kernel Pool Overflow from Windows XP to Windows 8
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

  • 2. Легковесная реляционная СУБД MySQL Павел Пушкарев
  • 3. Архитектура MySQL Архитектура MySQL представлена справа ;-) Отличительная особенность — различные хранилища данных 3 MySQL клиенты Пул соединений Парсер и оптимизатор MyISAM InnoDB Memory
  • 4. О чем пойдет речь • Хранилище MyISAM • Хранилище InnoDB • Резервные копии 4
  • 6. Таблички MyISAM CREATE TABLE foo (a INT KEY) ENGINE=MyISAM; SHOW VARIABLES LIKE 'key_buffer%'; 6 структура: *.frm данные: *.MYD индексы: *.MYI диск озу буфер ключей файловый кэш Таблица MyISAM
  • 7. Работа с MyISAM MyISAM: • Блокируется на каждую операцию • Возможны одновременные чтения • Возможна запись в конец таблицы 7
  • 8. Работа с MyISAM MyISAM: • Блокируется на каждую операцию • Возможны одновременные чтения • Возможна запись в конец таблицы 8 Потоки 1 2 ... N W время
  • 10. Таблички InnoDB CREATE TABLE foo (a INT KEY) ENGINE=InnoDB; SHOW VARIABLES LIKE 'innodb_buffer%'; SHOW VARIABLES LIKE 'innodb_log_buffer%'; 10 структура: *.frm tablespace: ibdata tablespace: *.ibd журнал: ib_logfile диск озу буфер InnoDB буфер журнала Таблица InnoDB
  • 11. Работа с InnoDB InnoDB: • Полностью поддерживает ACID • Использует основной ключ как кластерный индекс • Внешние ключи и ссылочная целостность • MVCC 11
  • 12. Работа с InnoDB InnoDB: • Полностью поддерживает ACID • Использует основной ключ как кластерный индекс • Внешние ключи и ссылочная целостность • MVCC 12 ОЗУ InnoDB buffer pool Log buffer pool Tablespace Диск Undo Doublewrite Transaction log (Redo)
  • 13. Работа с InnoDB InnoDB: • Полностью поддерживает ACID • Использует основной ключ как кластерный индекс • Внешние ключи и ссылочная целостность • MVCC 13 ОЗУ InnoDB buffer pool Log buffer pool Tablespace Диск Undo Transaction log (Redo) 1 Doublewrite 4 3 2
  • 14. Резервные копии И восстановление на момент времени
  • 15. Грустная и скучная теория Бэкапы бывают двух видов: • Текстовые - mysqldump • Бинарные - mysqlhotcopy - xtrabackup 15 SELECT * cp /var/lib/mysql/*
  • 16. Журнал изменений Binary log: • Пишется на все изменения в базе • Бывает row, statement и mixed • mysqlbinlog помогает читать 16
  • 17. Пример адского бэкапа innobackupex /var/lib/mysql /var/backups innobackupex --apply-log /var/backups/{dirname} chown -R mysql /var/backups/{dirname} cp -a /var/backups/{dirname} /var/lib/mysql mysqlbinlog /var/log/mysql-bin.* --stop-position={position} | mysql 17 Backup Restore