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