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

16 июн. 2013 г.

Пошаговая оптимизация MySQL когда есть реальный трафик.

Тут я писал про оптимизацию ВДС за 9 баксов.

Пункт номер пять - оптимизация MySQL. Я долго не хотел этим заниматься, но пришлось. Как оказалось, там всё очень просто. По шагам:

  1. скачать/обновить phpmyadmin в виде архива папки тут
  2. распаковали у себя на компе, удалили все языки кроме русского и английского
  3. запаковали обратно в архив, который стал меньше в два раза
  4. не инсталлировать через yum или иное, а просто залить в корень вашего WWW и распаковать
  5. переименовать папку в абракадабру типа  pma2012 чтобы хакеры не долбили логин в админку
  6. настроить алиас в вэбсервере чтобы оно открывалось только по IP типа http://123.45.67.89/pma2012/
  7. не привязывать к домену чтобы хакеры не долбили логин в админку
  8. идем http://123.45.67.89/pma2012/setup/ ставим временно права 777 и 666 куда оно попросит.
  9. настроить авторизацию HTTP и всякое нужное, не забыть сохранить
  10. залогинились, идем в закладку "Состояние" (.../server_status.php...) - закладка "Все переменные состояния" (.../#PMAURL-2:server_status_variables.php...)
  11. ставим галку "Выводить только предупреждающие значения"
  12. читаем, думаем, гуглим, меняем
  13. переходим на закладку "Советчик" (.../#PMAURL-3:server_status_advisor.php...)
  14. читаем, думаем, гуглим, меняем внимательно, потому что часть советов Советчика повторяют советы из "Все переменные состояния"
  15. записываем прямо в my.cnf в комментах какой параметр чему был равен и из-за какого значения производительности мы его поменяли потому что...
  16. через сутки повторяем шаги 10 - 15. Делаем столько подходов, пока результат не станет нравится. У меня это заняло пять дней.
Предупреждения:
  • Из-за того, что внутри вордпресса на структуру запросов и индексацию таблиц мы влиять не можем, то не все параметры вам удастся оптимизировать. Я смирился с этим.
  • Включите лог медленных запросов, почитайте их, и выбросите/замените плагины, которые там очень часто появляются. Затем выключите лог медленных запросов.

Прочитать полностью...

9 июл. 2008 г.

Организация "блогоскопища" (с) (tm) 2008 F17 :) Деталь четыре.

Важная деталь для изготовления Блогоскопища (с) (tm) 2008 F17 :) - клонатор баз данных блогов.
Клонировать заготовку блога на движке вордпресс можно с минимальными телодвижениями, если взять дамп блога-заготовки, например, с помощью PHPmyAdmin, и заменить в нем необходимые элементы: домен/субдомен, тайтл, деск, киворды, мыло админа, хэш пароля и т.п. А затем залить этот дамп тем же PHPmyAdmin в качестве нового. Не нужно ничего админить - можно сразу срать нет генерировать нет спамить нет сплогить, а-а-а вот: постить в блог :)
Так я и делал, при этом не придал особого значения, что сбиваются некоторые настройки некоторых плагинов. Подумал, ничего страшного, поправил вручную и нормально.
Но сегодня меня это достало и я решил разобраться, что там ломается.

Всё оказалось печально.

Если заменямая строка является элементом массива и изменяется её длина, то необходимо скорректировать число, указывающее сериализатору ПХП длину строки в массиве.
Было так (фрагмент):
;s:31:"http://feeds.feedburner.com/aaa";
Так неверно:
;s:31:"http://feeds.feedburner.com/bbbbbb";
Правильно так:
;s:34:"http://feeds.feedburner.com/bbbbbb";

Вот регулярка для выделения таких элементов

if(!preg_match_all("|;s:[0-9]+:\"[^\"]*".$sample_for_search."[^\"]*\";|uUi", $dump, $matches)){
return false;
if(!isset($matches[0][0])){ // не сработало
return false;
}
}

Теперь в массиве $matches[0] находятся строки в которых есть $sample_for_search и, при этом, являются элементами массива. Теперь всё просто - выделить строку в кавычках
if(preg_match("|\"(.*)\"|uUi", $match, $matches2)){ // $matches2[1] - содержимое кавычек

Заменить в ней то, что нужно, и собрать элемент массива с новой длиной строки
PS
Уже неделю читаю ридер пять минут в день, так что удалять-добавлять никого не придется - просто некогда.
Прочитать полностью...

7 июн. 2008 г.

Организация "блогоскопища" (с) (tm) 2008 F17 :) Деталь два.

Вторая деталь для изготовления блогоскопища (часть 1) будет избавлять нас от излишнего трафика и скоростного замусоривания базы данных mysql.
Поскольку все наши вордпресс-блоги будут жить в одной базе mysql, но с разными префиксами, то повторение одинаковых записей, тем более не нужных, будем искоренить лопатой.



Для этого в файле \blog\wp-admin\includes\upgrade.php в function wp_install_defaults отключаем лишнее, а именно добавляем
/*
перед
// Now drop in some default links
и добавляем
*/
в конце длинннннной строки 109 в секции "// First Page"

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

Далее в файле \blog\wp-admin\includes\dashboard.php в function wp_dashboard_setup() отключаем вывод ненужных виджетов в админке, которые к тому же кэшируются в базе данных и занимают немало места.

Делаем так:

/*
// WP Plugins Widget

...

*/

/* Dashboard Widget Template

Таким образом КАЖДЫЙ вордпресс перестанет ходит в интернет за новостями и складывать их в базу данных.

НО !

Теперь вы не узнаете об обновлениях самого вордпресса и его плагинов - следите сами. Из другого блога на вордпрессе :)

Лучший способ сэкономить немного времени - удалить что-нибудь лишнее из рсс-ридера. Сегодня это блог реально крутого сеошника:
http://soulteam.biz/
Человек видать не чайник, ездит на все IncomeConf и прочие тусовки, в блог ничего интересного не пишет, короче настоящий профи. На лайвинтернетовском счетчике у него 10 заходов в сутки.
Прочитать полностью...