Работал над одним проектом, который до меня делали другие. Проект достаточно
большой, и одна из его частей считывает некоторые данные с базы. Есть
возможность регулировать дату от и до при считывании. Возникла проблема, из-за
которой клиент очень ругался. Если промежуток от и до очень большой, к примеру
кто-то захочет считать данные за несколько лет, то скрипт работает нереально
медленно, а иногда даже выдаёт таймаут.
Бились над проблемой 3 дня, перелопатили кучу кода, даже нашли некоторые
другие баги, которые не имели отношения к проблеме. В итоге наткнулся на кусок
кода в том месте, где искать никто просто не додумался:
$res = $DB->getData($query); //считывает данные с ДБ и загоняет в
пронумерованный массив
$data = new array();
foreach ($res as $key=>$value)
{
if (!$data[$key])
$data[$key] = $value;
};
Все это вместо простого $data = $res;
Что имел ввиду кодер, родивший это чудо, так и осталось загадкой.
http://ithappens.ru/story/367