Category Archives: MySQL

Архитектура больших проектов: Facebook

На том уровне, на котором работает Facebook, традиционные подходы к организации работы вебсайтов не работают вообще или, как минимум, не обеспечивают должной производительности. Огромная посещаемость проекта бросила вызов инженерам Facebook необходимостью поддерживать работоспособность сайта при почти полумиллиарде активных пользователей. Эта статья описывает программное обеспечение и техники, благодаря которым это стало возможно.

Особенности триггеров в MySQL (SHOW TRIGGERS и SUPER PRIVELEGES)

На сервере возникла проблема такого плана. От имени пользователя root выполняем скрипт, который добавляет в БД триггеры. Потом другой пользователь выполняет команду SHOW TRIGGERS; и… ничего не видит. Но триггеры есть, мы можем посмотреть таблицу information_schema.TRIGGERS и увидеть их. Как же так получилось, что триггеры для пользователя стали невидимыми?

Eventr.com как смесь веб-технологий

Недавно состоялся запуск проекта Evantr.com. Коротко скажу, что по функционалу это социальный RSS-ридер, гибрид twitter и GoogleReader. Кстати, очень занятная получилась штука. Можно импортировать RSS к себе в ленту, добавлять в неё ленты друзей, и удобно читать всё это дело. Чем мне сразу понравился проект, так это тем, что разработчики не пытаются объять необъятное, а делают небольшой функционал, но зато на отлично. Из минусов я бы выделил то, что нельзя получить RSS-поток своей ленты.

Тормоза при коннектах к MySQL на другом сервере

У сайта вдруг начали появляться тормоза. Скрипт отарбатывал больше 10 секунд. Начали с коллегами копать и выяснили, что очень большое время занимает коннект к серверу БД. По 5 секунд на коннект, два коннекта = 10 секунд.

Оказывается, это виноват резолв имен. Чтобы решить проблему прописали хосты с которых идут коннекты в /etc/hosts сервера БД, и стали запускать mysqld с параметром –skip-name-resolve

После этого время работы сократилось на порядок.

Подробнее о резолве в MySQL можно прочитать здесь:

http://dev.mysql.com/doc/refman/5.0/en/dns.html

Точные имена свойств модели в Doctrine

Эта статья посвящена точному(с учётом регистра) отображению названий колонок таблицы БД в свойства модели. Данная проблема актуальна для 1ой ветки ORM, т.к. во второй ветке она похоже уже решена. Но т.к. стабильным релизом на данный момент является версия 1.2.1 а версия 2 в стадии ALPHA4, то думаю, что эта проблема актуальная для многих пользователей ORM.

Если camelCase названия/алиасы колонок не используются в вашем проекте, то данное решение будет неактуально для вас.