up
ГлавнаяБлогБезопасностьЖелезоПрограммированиеАдминистрирование
BenchmarkDebianCentOSHDDLinuxRAMSSDPHPMySQLCPUPerlHTMLBashFreeBSD

Популярные статьи
Категория “Администрирование

Использование tmpfs в MySQL

Если вы стали замечать, что show processlist в Mysql стал показывать много Copying to tmp table запросов, а все необходимые оптимизации запросов уже сделаны, то можно подумать о использовании tmpfs для хранения временных таблиц.

Подключить tmpfs к mysql достаточно просто. Для начала создадим директорию и задаим на нее правильные права:

mkdir /tmp/mysqltmp
chown mysql:mysql /tmp/mysqltmp

Далее определим uid и gid mysql через /etc/passwd и /etc/group. Этот шаг пропускать нельзя, без него не работает.

grep mysql /etc/passwd
grep mysql /etc/group

Пусть это будут uid=502(mysql) gid=503(mysql) groups=503(mysql) для примера.

В /etc/fstab пропишем строчку:

tmpfs /tmp/mysqltmp tmpfs rw,gid=503,uid=502,size=2G,mode=0700 0 0

Если прописать очень маленький размер раздела, то большие временные таблицы туда не будут влезать, соответственно, запросы не будут выполняться. Определите нужны размер опытным путем.

Далее монтируем раздел tmpsf командой:

mount /tmp/mysqltmp

Если в /etc/fstab вы ничего не вписывали, то монтирование tmpfs можно сделать и командой:

mount -o size=2g,gid=503,uid=502,mode=0700 -t tmpfs tmpfs /tmp/mysqltmp

Но после перезагрузки раздел не подмонтируется сам.

Вносим изменения в my.cnf

tmpdir=/tmp/mysqltmp/

И перезапускаем mysql, в зависимости от ОС:

service mysql restart
service mysqld restart
service mysql-server restart

Thursday, 21 August 2014, 19:19Прочитано 43 раза
Ссылка на страницу:

comments powered by Disqus

Чаще всего ищут

Статистика блога
Статтей: 177
Безопасность: 9
Железо: 19
Программирование: 14
Администрирование: 134