MySQL: Партиционирование таблиц

Для улучшения производительности нужно использовать партиционирование таблиц.

Для ручного партиционирования есть 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;