Показаны сообщения с ярлыком FreeBSD ssh MySQL. Показать все сообщения
Показаны сообщения с ярлыком FreeBSD ssh MySQL. Показать все сообщения

четверг, 3 марта 2016 г.

Ускоряем MySQL

Эта заметка поможет при работе с кривыми скриптами криво работающими с БД MySQL 
( был образец модуля для джумлы который с базой весом в 30 Мб умудрялся наглухо уложить linux-сервер по IOPS дисковой подсистемы)

Ускоряем MySQL с помощью tmpfs
Tmpfs — временное файловое хранилище во многих Unix подобных операционных системах. Tmpfs пердназначена для монтирования файловой системы, а сама размещается в оперативной памяти вместо физического диска. Использование tmpfs в вашей системе можно увидеть с помощью вывода команды df -h
/dev/sda 30G 925M 28G 4%
tmpfs     502M 0 502M 0% /lib/init/rw
udev      497M 60K 497M 1% /dev
tmpfs     502M 4,0K 502M 1% /dev/shm
В tmpfs могут размещатся любые директории, хранящие временные данные и которые можно удалить при перезагрузке системы: /var/lock, /var/run, /tmp и др. Tmpfs используют для уменьшения количества дисковых операций io c целью повышения производительности системы или экономии ресурса твердотельных накопителей.
В процессе работы базы данных MySQL создаются временные таблицы. Место расположения временных таблиц определяется переменной tmpdir в файле /etc/mysql/my.cnf. Если для таких временных таблиц (файлов) не хватает памяти, то начинается активный i/o, создающий нагрузку на дисковую подсистему сервера. А смонтировав папку временных файлов mysql на tmpfs, мы решим проблему проблему производительности базы данных и системы в целом.
На достаточно новых ядрах к директории /dev/shm по умолчанию подмонтирована файловая система tmpfs размером 0,5 объёма физической памяти, которую можно использовать для своих нужд. Если на вашем сервере дело с tmpfs обстоит именно так, нам остается внести правки файл конфигурации MySQL:
$ nano /etc/mysql/my.cnf
Закомментировав предыдущее значение параметра tmpdir, добавляем:
tmpdir = /dev/shm
Перезапускаем базу данных mysql:
$ service mysql restart
Проверяем полученный результат:
$ mysql
mysql> SHOW VARIABLES LIKE 'tmpdir';
+---------------+----------+
| Variable_name | Value    |
+---------------+----------+
| tmpdir        | /dev/shm |
+---------------+----------+
1 row in set (0.00 sec)


Источник: http://serveradministrator.ru/mysql/mysql-to-tmpfs/

среда, 8 февраля 2012 г.

mysql *BSD

Можно делать посредством многочисленных php'шных средств (phpmyadmin, dumper(Sypex), etc) , но там будем упираться в маскимальный размер пост данных и максимальное время выполнения скриптов, а некоторые дампы весят больше чем 1Гб, так что эта метода будет черезвычайно мелительная и довольно глючная (в сайпексе при импорте больших баз вообще не отображается ход импорта , хотя с сайта можно узнать, что поддерживаются довольно большие дампы). Итак приступим.=)

1. Импорт .

В принципе можно воспользоваться командой :

mysql -uroot -proot_pass db_name < db_name.sql

но она содержит подводные камни в виде того, что если например база уже создана, то импорт может оказаться неудачным.
Самым лучшим выходом из ситуации будет ипморт напрямую через cli MySQL :

Заходим в MySQL - mysql -uroot -proot_pass
далее делаем - use db_name;
далее импортируем командой - source db_name.sql;

2. Экспорт.

Делаем экспорт посредством удобного mysqldump :

mysqldump -uroot -proot_pass db_name > db_name.sql