Это старая версия документа!
InnoDB
- макс. диск: 64Тб
- полная поддержка транзакций (4 уровня изоляции)
- блокировка записи/строк (не таблицы), два вида блокировок (SHARED, EXCLUSIVE)
- полнотекстовый индекс: нет
- безопасная для транзакций
- индексы кластеризуются для «типичных запросов»
- поддержка целостности (внешние ключи)
- может использоваться на ОС с ограниченным размером файла
- множество настроек для оптимизации
- позволяет использовать Raw Disk для таблиц в обход ФС
- по умолчанию включен AUTOCOMMIT (SET autocommit=1)
- автоматически детектит дэдлоки (deadlocks)
Движок был разработан специально для больших таблиц. Разработчики заявляют, что InnoDB — самый быстрый из всех известных движков для БД основанных на дисках (множественные тесты это подтверждают)
Советы/Рекомендации
- SELECT COUNT(*) FROM table работает гораздо медленнее, чем MyISAM — создавайте триггеры если нужно (COUNT, SUM, AVG, etc)
- бэкап простым копирование файлов невозможен
- mysqldump работает медленно, для бэкапа используйте InnodDb Hot Backup
- следите за индексами, выгода InnoDB теряется, если для запросов нет индексов
Рекомендации: высоконагруженные сайты, финансовые транзакции
XtraDB
Восстановление таблиц
- ibdata1: By default all data and indexes for all tables/databases is stored in a single, shared file: ibdata1. idbata1 does not shrink. If rows are deleted, space will be reclaimed by new rows, but the file will only grow in size.
- ib_logfile0 and ib_logfile1: Redo log files to recover lost data if MySQL is not shutdown properly.
- tablename.frm: Each table has a small *.frm file in the database-specific directory which stores the table definition.