Резервное копирование баз данных с отправкой на email
Навеяно статьёй Дмитрия «Ежедневный бэкап для WordPress с помощью Gmail», которую я очень рекомендую к прочтению.
Основное отличие моего метода кроется в моих «религиозных предпочтениях»: я считаю, что вряд ли какая программа сможет сделать копию базы быстрее, чем mysqldump, и бинарный файл всегда работает быстрее, нежели самый оптимизированный PHP-код. Поэтому никаких лишних плагинов для WordPress, только подручные средства
Хотя данное решение не подойдёт людям, использующих shared-хостинг. Далее »
Апр
2009
PHP 5.2.6 в Debian Lenny: неожиданный сюрприз
Есть сервер с Debian Lenny на борту. На сервер стоит Apache, MySQL, PHP5 — одним словом, стандартный web-сервер. Плюс XCache и ionCube Loader.
С некоторого времени стали замечать, что PHP начал падать с ошибками сегментации, причем падал исключительно CLI, модуль Apache работал исправно. Далее »
Автор: Vladimir, опубликовано в: Linux, PHP, Администрирование, комментариев: 5Мар
2009
Подсчёт трафика в nginx: часть 2
В статье «Подсчёт трафика в nginx» я приводил один из возможных вариантов живого подсчёта трафика в nginx.
У прошлого решения есть недостатки:
- используется три лишних процесса;
- используется много файловых дескрипторов (зависит от количества виртуальных хостов).
Я на днях нашёл еще один вариант. Далее »
Автор: Vladimir, опубликовано в: Linux, MySQL, nginx, Администрирование, комментариев: 7Фев
2009
Подсчет трафика в nginx
Постановка задачи: есть Linux-сервер, на котором живёт сотня-другая виртуальных хостов. Сервер работает под управлением nginx. Нужно реализовать подсчет трафика с отображением «живой» статистики. Далее »
Автор: Vladimir, опубликовано в: Linux, MySQL, nginx, Администрирование, комментариев: 9Янв
2009
Мысли на тему массового UPDATE в MySQL
(1, 2, 3), (4, 5, 6), (7, 8, 9)
ON DUPLICATE KEY UPDATE `b`=VALUES(`b`), `c`=VALUES(`c`);
Например, для WordPress (при условии, что пара (user_id, meta_key) является уникальным ключом):
(1, 'key1', 'value1'),
(1, 'key2', 'value2'),
(1, 'key3', 'value3'),
(1, 'key4', 'value4'),
(1, 'key5', 'value5')
ON DUPLICATE KEY UPDATE `meta_value`=VALUES(`meta_value`);
Янв
2009
Автоматическое обновление баз HostIP
HostIP.info — сервис, позволяющий определить физическое местоположение по IP-адресу. Бесплатная альтернатива MaxMind. Одним из достоинств данного сервиса является то, что он предоставляет возможность хранить геолокационную базу данных на своём сервере. Очевидно, что базу данных нужно обновлять время от времени. Далее »
Автор: Vladimir, опубликовано в: Linux, комментариев: 3Янв
2009
WordPress под микроскопом
Навеяло комментариями к статье «Трудности веб-разработки» и недавним копанием во внутренностях WordPress…
Да, WordPress сама по себе хорошая система (особенно с точки зрения конечного пользователя): в ней можно настроить абсолютно всё (особенно, когда есть деньги и парочка толковых программистов). Но есть одно большое «но»: если вы — опытный программист и волею Фортуны вам пришлось копаться во внутренностях этого чуда, то неизбежно в скором времени начинаете ощущать себя проктологом-патологоанатомом.
Если хочется кучу всякой гадости, вроде плагинов, редактирования страниц, темплейтов, интегрирования чего попало куда попало — естественно, за это приходится платить. Платить очень дорого.А какое можно сделать «элегантное решение»? Чтобы оно обладало тем же функционалом? Можно только повторить монстра.
Доля истины в этом высказывании, разумеется, есть: чем универсальнее решение, тем оно монстроидальнее. Задача состоит в том, как этого монстра оптимизировать и минимизировать. Есть программисты, а есть быдлокодеры (у меня сегодня два цвета: чёрный и белый). Разница между первыми и вторыми заключается только лишь в умении использовать ресурсы серого вещества, именуемого мозгом. В результате у первых получается элегантное решение, а у вторых — Некрософт Виндовс Нерабочий Труп.
Это я всё к чему? Берём WordPress и смотрим:
MySQL: 45 запросов / 0.550 Потребление памяти: 10.1MB…
У меня немного другая статистика (наверное, сервер мощнее): 50 запросов, 0.05 сек.
Пятьдесят плюс-минус пять запросов: много ли это? Фиг его знает, может и не много, ибо всё познаётся в сравнении. Ну так давайте сравним. Я «надругался» над несчастным WordPress и просто отрубил ему кэш. Готовы?
1462 запроса и 2.02 секунды (лог запросов превышает мегабайт). Те, кто знаком с оптимизацией запросов в MySQL, ужасайтесь вместе со мной.
Можно долго спорить о том, что кэш нельзя выключать, разработчики его не зря включили и всё в том же духе. Ответ: а почему нельзя было сразу спроектировать нормально, чтобы не требовались костыли в виде кэша? По-хорошему, кэш должен использоваться как средство, дающее дополнительное ускорение приложению, но не как средство, обеспечивающее нормальную жизнедеятельность приложения. Скажем так: стимуляторы при умеренном применении могут оказать положительный эффект на человека. Но когда стимуляторы используются только для поддержания жизнедеятельности человека — это уже другая песня.
Вот так.
Но, возможно, в следующей версии…
Автор: Vladimir, опубликовано в: WordPress, комментариев: 20Ноя
2008
Можно ли написать серьёзное web-приложение с использованием MySQL, но без знания принципов работы MySQL?
Хотя я люблю WordPress, но то, что я увидел сегодня в коде, меня сильно потрясло.
Речь пойдёт о виджетах, а именно, о календаре и архиве. Я вкратце опишу реализацию каждого из них, а затем расскажу, почему так делать нельзя. Далее »
Автор: Vladimir, опубликовано в: MySQL, Патчи, комментариев: 32Ноя
2008
Секреты update_postmeta_cache()
Если плагину приходится в цикле читать метаданные для большого количества записей, можно увеличить производительность путём использования функции update_postmeta_cache(). Далее »
Окт
2008
Чудеса…
Началось всё с того, что я забыл заплатить за Internet, и в благодарность за это мой провайдер меня безжалостно отрубил. Дело было вечером, делать было нечего, тем более, что я давно собирался написать статью про MySQL. И вот, когда я стал генерировать тестовую таблицу, начались чудеса… Далее »
Автор: Vladimir, опубликовано в: MySQL, Юмор, комментариев: 3Сен
2008

Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.

