bash.im ithappens.me zadolba.li
9170

Падай ниц перед моим кодом!

Правлю чужой PHP-код. Самописный сайтовый движок, который умудрялся при 15000 посещений в сутки класть выделенный сервер. Причём процессор был загружен на 1–2%, а база трещала под неимоверной нагрузкой.

Выяснилось следующее. На странице в двух местах выводилось меню: полное и с текущего места. Мало того, что построение содержимого не было объединено в один процесс, то бишь каждый раз данные брались заново, так ещё и для простого составления списка статей, когда нужны заголовки и ещё пара мелочей, не мудрствуя лукаво, человек написал: «SELECT * FROM %tablename%». Всего в базе порядка 150 статей с полным и сокращённым текстом. Редкая статья меньше 4000 знаков. Ну, вы поняли…

Кривые комменты — и того лучше. Вместо простого запроса «SELECT COUNT(id) FROM %tableName%» человек получает массив всех записей из базы. Затем примерно в 30 строках описан сложнейший алгоритм подсчёта количества записей.

Но убило даже не это. После всех этих манипуляций красуется строчка:

$count_rows = $count_rows;

Ну, хоть в чём-то человек был уверен на 100%!