Блокировки транзакций InnoDB при удалении данных из таблицы
Ситуация: есть несколько физических почтовых серверов (PowerMTA), отсылающих более четырёх миллионов сообщений в сутки. Есть виртуальный сервер базы данных (причём не очень мощный), на котором крутится MySQL с InnoDB; в базу данных пишутся логи доставки/не доставки сообщений и ведётся статистика по IP-адресам, VMTA и доменам. Попутно выполняется классификация и анализ hard и soft bounces. База за день увеличивается примерно на 5 гигабайт. Часть логов недельной давности удаляется. Далее »
Автор: Vladimir, опубликовано в: MySQL, комментариев: 2Фев
2011
Подсчёт трафика в 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
Можно ли написать серьёзное web-приложение с использованием MySQL, но без знания принципов работы MySQL?
Хотя я люблю WordPress, но то, что я увидел сегодня в коде, меня сильно потрясло.
Речь пойдёт о виджетах, а именно, о календаре и архиве. Я вкратце опишу реализацию каждого из них, а затем расскажу, почему так делать нельзя. Далее »
Автор: Vladimir, опубликовано в: MySQL, Патчи, комментариев: 32Ноя
2008
Чудеса…
Началось всё с того, что я забыл заплатить за Internet, и в благодарность за это мой провайдер меня безжалостно отрубил. Дело было вечером, делать было нечего, тем более, что я давно собирался написать статью про MySQL. И вот, когда я стал генерировать тестовую таблицу, начались чудеса… Далее »
Автор: Vladimir, опубликовано в: MySQL, Юмор, комментариев: 3Сен
2008
Доступ к удалённому MySQL-серверу по SSH
Как известно, в целях безопасности сервер MySQL по умолчанию открыт для доступа только с локальной системы. Поэтому, когда на сервере не установлен phpMyAdmin, а консольной версией клиента пользоваться просто неудобно (ненаглядно), приходится открывать доступ для удаленного пользователя. Но такое решение не самое безопасное.
В таких случаях рекомендуется использовать методику, имеющую название port forwarding (перенаправление портов). Далее »
Автор: Vladimir, опубликовано в: Linux, MySQL, Администрирование, Безопасность, комментариев: 4Апр
2008
MySQL и скорость выполнения INSERT для разных типов таблиц
Я сейчас работаю над очень интересным проектом, который, как надеется заказчик, составит серьёзную конкуренцию Google Analytics. Но речь не об этом. Разбираясь с архитектурой системы, я обнаружил весьма интересную деталь: 8 гигабайт памяти сервера отдается под несколько таблиц типа HEAP. Так как HEAP-таблицы хранятся в исключительно в памяти, то операция вставки (INSERT) должна выполняться очень быстро, так как временные затраты, связанные с перемещением головок диска и физической записью, отсутствуют. Я решил найти подтверждение этой теории. Google is your friend, и я довольно быстро нашел статью MySQL Engine INSERT speed. Далее »
Автор: Vladimir, опубликовано в: MySQL, PHP, комментариев: 4Мар
2008
Хранение PHP-сессий в базе данных
Начну сразу с причин, по которым я пишу эту статью. Я периодически просматриваю лог запросов, по которому люди попадают сюда, и вот один из запросов — хранить php сессию в mysql
.
Итак, как же хранить PHP-сессии в базе данных? Далее »
Автор: Vladimir, опубликовано в: MySQL, PHP, комментариев: 21Мар
2008
Конвертирование базы данных MySQL из одного charset в другой
Недавно мне пришлось столкнуться с задачей перевода базы данных из одного charset в другой. Исходная база была в iso-8859-1, предстояло перевести её в utf-8. Задача усложнялась тем, что в исходной базе присутствовали символы из других языков (русский, испанский и, возможно, китайский). Далее »
Автор: Vladimir, опубликовано в: MySQL, комментариев: 6Мар
2008

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

