15 Сен
Использование 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. Этот шаг пропускать нельзя, без него не работает.
Пусть это будут 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.
Понравилась статья? Поделись с остальными.