Дельта-бэкапы баз данных

На одном из серверов с большим числом пользователей у нас настроено автоматическое создание резервных копий баз данных — четыре раза в день. Стоит отметить, что размер сжатых резервных копий всех баз данных превышает 400 мегабайт. Таким образом, за один день на резервные копии баз данных уходит около двух гигабайт дискового пространства. Две недели — почти 30 гигабайт. Расточительство.

Для экономии места мы изобрели велосипед под названием «дельта-бэкап» (известный как разностный бэкап, differential backup) — мы храним одну полную резервную копию базы данных и список изменений.

Ввиду того, что клиентские сайты используют , разностное резервное копирование баз данных позволяет сэкономить очень много дискового пространства. Далее »

Автор: , опубликовано в: Linux, комментариев: нет
28
Сен
2010

Небуферизованные запросы: снижаем потребление памяти WordPress

Пиковое потребление оперативной памяти можно снизить приблизительно два раза и практически бесплатно. В чём секрет? В использовании правильных функций для работы с базой данных.

Опытные программисты знают, что API предоставляет два варианта работы с результатом запроса:

  1. Последовательная обработка результата — при этом не происходит никакой буферизации результата, данные отдаются от сервера клиенту, минуя временные таблицы и буфера. В этом случае обработка результатов может производиться только последовательно.
  2. Буферирование результата запроса — результат полностью читается во временный буфер, что позволяет осуществлять произвольный доступ к результату.

Далее »

Автор: , опубликовано в: WordPress, комментариев: 26
2
Сен
2010

Исправление ошибки в INSERT INTO … SELECT в Kohana 3 при использовании конфигурации базы данных, отличной от default

Ситуация: нужно выполнить запрос вида

[-]
View Code SQL
INSERT INTO `table` (`col1`, `col2`) SELECT * FROM `table` WHERE `col1` <> 0;

Если использовать конфигурацию default, то всё отлично работает. Если же использовать другую конфигурацию, то можем получить ошибку соединения с базой данных и исключение. Далее »

Автор: , опубликовано в: Kohana, комментариев: нет
12
Авг
2010

Поддержка JOIN в запросах DELETE для Kohana 3

Иногда бывает полезно выполнить удаление записей в нескольких связанных таблицах, благо синтаксис позволяет. Разумеется, есть такая вещь как каскадное удаление записей, но в случае с (а именно — таблицами MyISAM) на неё надеяться не приходится.

Модуль Database из 3 не умеет использовать JOIN с операцией DELETE. Нужно ему помочь. Далее »

Автор: , опубликовано в: Kohana, комментариев: нет
11
Авг
2010

Патч для кэширования пустых результатов запросов в Kohana

Проблема: 3 (3.0.7, возможно, ранние версии) не может брать результаты запросов из кэша, если запрос вернул пустой результат.

Решение проблемы. Далее »

Автор: , опубликовано в: Kohana, комментариев: 1
11
Авг
2010

Резервное копирование баз данных с отправкой на email

Навеяно статьёй Дмитрия «Ежедневный бэкап для WordPress с помощью Gmail», которую я очень рекомендую к прочтению.

Основное отличие моего метода кроется в моих «религиозных предпочтениях»: я считаю, что вряд ли какая программа сможет сделать копию базы быстрее, чем mysqldump, и бинарный файл всегда работает быстрее, нежели самый оптимизированный -код. Поэтому никаких лишних плагинов для , только подручные средства :-) Хотя данное решение не подойдёт людям, использующих shared-хостинг. Далее »

Автор: , опубликовано в: Linux, Администрирование, комментариев: 2
19
Апр
2009

Хранение PHP-сессий в базе данных

Начну сразу с причин, по которым я пишу эту статью. Я периодически просматриваю лог запросов, по которому люди попадают сюда, и вот один из запросов — хранить сессию в .

Итак, как же хранить PHP-сессии в базе данных? Далее »

Автор: , опубликовано в: MySQL, PHP, комментариев: 21
19
Мар
2008

Конвертирование базы данных MySQL из одного charset в другой

Недавно мне пришлось столкнуться с задачей перевода базы данных из одного charset в другой. Исходная база была в iso-8859-1, предстояло перевести её в utf-8. Задача усложнялась тем, что в исходной базе присутствовали символы из других языков (русский, испанский и, возможно, китайский). Далее »

Автор: , опубликовано в: MySQL, комментариев: 6
9
Мар
2008