===== MySQL: Партиционирование таблиц ===== Для улучшения производительности нужно использовать партиционирование таблиц. для начала отключите стандарную ротацию логов $conf{USE_PARTITIONING}=1 Для ручного партиционирования есть billd плагин /usr/abills/libexec/billd partitioning DEBUG=1 Плагин инициализирует партиционизацию таблиц и обеспечивает чистку. Плагин нужно запускать один раз в день через крон. 1 3 * * * root /usr/abills/libexec/billd partitioning Сейчас плагин следит за таблицами 'ipn_traf_detail' 's_detail' 'errors_log' 'internet_log' Для выбора отдельной таблицы используйте аргумент **TABLES=xxx,xx,xxx** Перед началом партиционизации таблиц, приведите контрольные поля к правильному формату ALTER TABLE `ipn_traf_detail` CHANGE COLUMN s_time s_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; ALTER TABLE `ipn_traf_detail` CHANGE COLUMN f_time f_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; ALTER TABLE `s_detail` CHANGE COLUMN start start TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; ALTER TABLE `errors_log` CHANGE COLUMN date date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; ALTER TABLE `internet_log` CHANGE COLUMN start start TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; \\ \\ \\ ** Для MySQL < 5.6.5 **\\ До версии 5.6.5 существовало ограничение на одну колонку с значением по умолчанию ''CURRENT_TIMESTAMP''. \\ Если у вас возникает ошибка ERROR 1293 (HY000): Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause **и нет возможности обновить mysql-server**, то вместо запроса ALTER TABLE `ipn_traf_detail` CHANGE COLUMN f_time f_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP; нужно применить ALTER TABLE `ipn_traf_detail` CHANGE COLUMN f_time f_time TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00';