Тюнинг БД Mysql — различия между версиями
Перейти к навигации
Перейти к поиску
imported>Artem |
imported>Artem |
||
| (не показаны 3 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
Для увеличения производительности БД рекомендуется изменить конфигурацию my.cnf, добавив | Для увеличения производительности БД рекомендуется изменить конфигурацию my.cnf, добавив | ||
| − | + | innodb_buffer_pool_size = 3G (16M) | |
| − | innodb_buffer_pool_size = 3G (16M) | + | innodb_log_file_size = 64M (5M) |
| − | innodb_log_file_size = 64M (5M) | + | innodb_flush_method=O_DIRECT |
| − | innodb_flush_method=O_DIRECT | + | innodb_flush_log_at_trx_commit=2 (1) |
| − | innodb_flush_log_at_trx_commit=2 (1) | + | tmp_table_size=256M (32M) |
| − | tmp_table_size=256M (32M) | + | max_heap_table_size=256M (16M) |
| − | max_heap_table_size=256M (16M) | + | table_cache=256 (64) |
| − | table_cache=256 (64) | + | |
| − | + | пример 2 | |
| + | Опция /etc/my.cnf | ||
| + | innodb_file_per_table | ||
| + | default_table_type = INNODB | ||
| + | Каждая таблица в отдельном файле. (работает при создании новой таблицы) | ||
| + | Способы перевода таблиц в отдельный файл | ||
| + | 1) Перенос данных | ||
| + | CREATE TABLE new_table LIKE old_table; INSERT INTO new_table SELECT * FROM old_table; DROP TABLE old_table; RENAME TABLE new_table to old_table; | ||
| + | 2) Через dump файл | ||
| + | Сделать полный dump | ||
| + | mysqldump -u root -ppassword zabbix | ||
| + | mysql> drop database zabbix; | ||
| + | cat dump.sql | mysql -u root -ppassword zabbix | ||
| + | |||
| + | Далее использовал скрипты | ||
| + | Скрипт для оптимизации параметров MySQL | ||
| + | http://www.day32.com/MySQL/tuning-primer.sh | ||
| + | http://wiki.mysqltuner.com/MySQLTuner/mysqltuner.pl | ||
| + | http://hackmysql.com/mysqlreport | ||
| + | И делал тонкую настройку. | ||
| + | |||
| + | Оптимизация всех таблиц | ||
| + | mysqlcheck --optimize -A -u username -p | ||
| + | |||
| + | Апгрейд | ||
| + | https://www.zabbix.com/forum/showthread.php?t=26321 | ||
Текущая версия на 18:17, 1 февраля 2013
Для увеличения производительности БД рекомендуется изменить конфигурацию my.cnf, добавив
innodb_buffer_pool_size = 3G (16M) innodb_log_file_size = 64M (5M) innodb_flush_method=O_DIRECT innodb_flush_log_at_trx_commit=2 (1) tmp_table_size=256M (32M) max_heap_table_size=256M (16M) table_cache=256 (64)
пример 2
Опция /etc/my.cnf innodb_file_per_table default_table_type = INNODB Каждая таблица в отдельном файле. (работает при создании новой таблицы) Способы перевода таблиц в отдельный файл 1) Перенос данных CREATE TABLE new_table LIKE old_table; INSERT INTO new_table SELECT * FROM old_table; DROP TABLE old_table; RENAME TABLE new_table to old_table; 2) Через dump файл Сделать полный dump mysqldump -u root -ppassword zabbix mysql> drop database zabbix; cat dump.sql | mysql -u root -ppassword zabbix Далее использовал скрипты Скрипт для оптимизации параметров MySQL http://www.day32.com/MySQL/tuning-primer.sh http://wiki.mysqltuner.com/MySQLTuner/mysqltuner.pl http://hackmysql.com/mysqlreport И делал тонкую настройку.
Оптимизация всех таблиц
mysqlcheck --optimize -A -u username -p
Апгрейд
https://www.zabbix.com/forum/showthread.php?t=26321