Как разместить временные таблицы MySQL в оперативной памяти

Как разместить временные таблицы MySQL в оперативной памяти

Временные таблицы в MySQL – очень важная и незаменимая вещь, особенно если правильно это использовать. В этой статье Sovetbati покажет как разместить временные таблицы MySQL в оперативной памяти на примере Unix систем. Перенос временных таблиц в оперативную память в разы ускорит создание сложных выборок.

Решение

Для этого посмотрите сколько у вас есть свободной оперативной памяти, допустим 4 ГБ. Открываем bash или попросту консоль через ssh.

  1. Вводим команду «mkdir /var/lib/mysql/tmp_table» - создаст директорию для хранения временных файлов
  2. Устанавливаем владельцем директории mysql - «chown mysql:mysql /var/lib/mysql/tempsql»
  3. Теперь надо узнать gid группы и uid пользователя mysql командой – «id mysql». У нас это id 27.
  4. Открываем файл /etc/fstab и добавляем строку «tmpfs /var/lib/mysql/tempsql tmpfs rw,gid=27,uid=27,size=4G,mode=0700 0 0»
  5. Монтируем новый раздел - «mount /var/lib/mysql/tmp_table»
  6. Отрываем /etc/my.cnf и прописываем вместо строки tmpdir=... свою «tmpdir=/var/lib/mysql/tempsql»

Временные таблицы не заберут все 4 гигабайта памяти сразу, они будут брать по необходимости. Далее перезапускаем mysql или же лучше всего перезагрузить сервер чтобы все изменения были приняты.

Кто-то скажет, а почему бы просто не поставить SSD накопители или SSD с поддержкой NVME? Оперативная память в любом случае намного быстрее SSD и кстати, она в разы дороже топовых SSD в пересчёте на гигабайт.

Читайте также:

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

Ваш e-mail не будет опубликован.

 необходимо принять правила конфиденциальности