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

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

Mysql

Подключением tmpfs

Создадим директорию и зададим права:

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

Далее опредилм uid и gid mysql через /etc/passwd и /etc/group.

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

В /etc/fstab

nano /etc/fstab

пропишем строчку

tmpfs /tmp/mysqltmp tmpfs rw,gid=26,uid=25,size=2G,mode=0700 0 0

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

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

mount /tmp/mysqltmp

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

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

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

Настройка tmpfs в MySQL

Изменяем настройки в my.cnf

tmpdir=/tmp/mysqltmp/

И перезапускаем mysql.

Добавить комментарий