Некоторые другие заметки:
InnoDB не перераспределяет свободное пространство в файловой системе после удаления таблицы / базы данных или удаления записи, это можно решить путем «сброса и импорта» или установки innodb_file_per_table=1
в my.cnf.
Добавление / удаление индексов в большой таблице InnoDB может быть довольно болезненным, поскольку она блокирует текущую таблицу, создает временную таблицу с вашими измененными индексами и вставляет данные - строка за строкой. Есть плагин от Innobase , но он работает только для MySQL 5.1
InnoDB также НАМНОГО больше памяти, я предлагаю вам иметь настолько большую innodb_buffer_pool_size
переменную, насколько позволяет память вашего сервера (70-80% должно быть безопасным вариантом). Если вашим сервером является UNIX / Linux, рассмотрите возможность уменьшения переменной sysctl vm.swappiness
до 0 и используйте innodb_flush_method=O_DIRECT
, чтобы избежать двойной буферизации. Всегда проверяйте, нажимаете ли вы своп при переключении этих значений. Вы всегда можете прочитать больше в блоге Percona , и это здорово.
Кроме того, вы можете запустить mysqlbackup
с --single-transaction --skip-lock-tables
и не иметь блокировок таблиц во время резервного копирования.
В любом случае, InnoDB великолепен, не позволяйте некоторым подводным камням обескураживать вас.