В продолжение темы насморков и гильотины оптимизации MySQL привожу рецепт по включению такой полезной функции как innodb_file_per_table.
Зачем это нужно?
MySQL по умолчанию все таблички innodb хранит в одном файле - когда их накапливается приличное количество - файл значительно разрастается. Плюс не забывайте, что при удалении данных в innodb - размер файла не уменьшается - он растет только в большую сторону. Так что если данных в базе у вас много или идет активное удаление - рано или поздно вы задумаетесь о том, чтобы выполнить подобное разделениеЧто нужно сделать?
- Прежде всего - отрубаем нагрузку, выключаем связь сервер с внешним миром - php и прочее беспокоить вас не должны - процесс не быстрый
- Теперь тщательно делаем ПОЛНЫЙ бекап всех баз данных и конфига
- Удаляем все таблицы из БД
- Выключаем mysqld
- В /etc/my.cnf удаляем старое значение innodb_data_file_path
и добавляемinnodb_data_file_path=ibdata1:10M:autoextend innodb_file_per_table=1
- удалаем cледующие файлы
- /var/lib/ibdata1
- /var/lib/ib_logfile0
- /var/lib/ib_logfile1
- запускаем mysqld
- вкатываем таблицы обратно
- проверяем наличие свежесозданных файликов *.ibd
- PROFIT!!