Оптимизация MySQL таблиц по cron`у

Антон
На сайте с 09.01.2007
Offline
148
2502

Уважаемые.

Подскажите, не нашел нигде, возможно плохо искал.

Как реализовать оптимизацию MySQL таблиц выбранной базы по cron`у? Как выглядит команда?

Спасибо!

N
На сайте с 06.05.2007
Offline
419
#1

А не нашли потому, что это практически бесполезно.

Кнопка вызова админа ()
zexis
На сайте с 09.08.2005
Offline
388
#2
netwind:
А не нашли потому, что это практически бесполезно.

Почему бесполезно?

Например если делать оптимизацию mysql ночью каждый день или раз в неделю, то это может иметь смысл.

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

mr.Cent, посмотрите документацию по Mysql.

Там есть несколько команд для этого.

Я их синтаксис на память не помню. Нужно смотреть документацию.

K
На сайте с 19.03.2008
Offline
58
kkc
#3

запрос в гугле "OPTIMIZE TABLE +cron +command" сразу столько на все случаи на первой же странице выводит, что тут и за день не напишут :)

N
На сайте с 06.05.2007
Offline
419
#4

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

впрочем, если есть fulltext-индексы, считается что такие таблицы cтоит оптимизировать почаще.

Антон
На сайте с 09.01.2007
Offline
148
#5

Про полезность сего действа я и не спрашивал. Для 5мб базы, может это и бесполезно, но когда база более 500мб, и база очень активно используется, это действо очень даже полезно для запуска где-нибудь в 4 утра каждый день.

Нашел вроде как cron команду, выглядит примерно так:

mysql -u<username> -p<password> <database name> -e "OPTIMIZE TABLE `table1`, `table2`, `etc`;"
N
На сайте с 06.05.2007
Offline
419
#6

mr.Cent, а то, что у вас у вас примерно 20 минут не будет доступна база, запросы скопятся, сайт перестанет открываться, яндекс обидится и пометит вас крестиком, вас не волнует?

выигрываете вы не так уж много.


In most setups, you need not run OPTIMIZE TABLE at all (перевод : не надо запускать ВАЩЕ). Even if you do a lot of updates to variable-length rows, it is not likely that you need to do this more than once a week or month and only on certain tables.

http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html

этот источник для вас достаточно авторитетный ?

Антон
На сайте с 09.01.2007
Offline
148
#7

Спасибо за мнение, но тем не менее, я часто замечал на обычном хостинге, что после оптимизации базы, сайт работал значительно шустрее. Но сейчас на выделенном сервере это не заметно. Значит буду вручную делать это пару раз в месяц! :) Спасибо всем!

N
На сайте с 06.05.2007
Offline
419
#8

вполне укладывается в теорию : "оптимизация" это пересоздание файла с таблицей. Вероятно содержимое и индексы такой таблицы сразу попадают в кеш ОС и все другие данные других пользователей вытесняют. На некоторое время.

На выделенном сервере все ресурсы и так только ваши, поэтому эффект не столь заметен.

Zaqwr
На сайте с 08.08.2007
Offline
111
#9

/usr/bin/mysqlcheck -Aor -uroot -pPASSWD -s

Администрирование, Linux, Cisco, Juniper
Himiko
На сайте с 28.08.2008
Offline
560
#10

Вот и от меня примерчик для проверки табличек:

/etc/init.d/mysqld stop && find /var/lib/mysql/ -name '*.MYI' |xargs myisamchk -o -r && /etc/init.d/mysqld start

Только по крону не стоит запускать, т.к. на момент проверки отрубается mysql и может долго выполняться, если большой объём баз.

P.S.: В разных дистрибутивах Linux могут быть разные команды запуска/остановки mysql, а в FreeBSD базы лежат не в /var/lib/mysql, а в /var/db/mysql.

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий