Хм, у меня все работало вот http://strongtop.ru под верхней рекламой
[code]$sait= mysql_query("SELECT * FROM `".$prefix."sait` ORDER BY RAND () LIMIT 1" while ($SAIT = mysql_fetch_assoc
($sait))
{
echo $div_1.
$start.'<img src="http://'.$set['home'].'/images/rek.png"><a href="http://'.$set['home'].'/out/'.$SAIT['id'].'"><b>'.$SAIT['url'].'</b></a> ';
}
echo '</div>';[/code]
не используйте order by rand()
Зло это, которое со временем даёт такую нагрузку, что мало не покажется
Оно не нагрузку даёт, а зря расходует память.
Тут или триггеры юзать. Или 2 запроса делать, но без rand().
Hatsune Miku, Попробуйте)
Сгенерьте таблицу на пару миллионов
И выберите пару записей
Памяти не много утечёт (в mysql есть настройка, сколько выделять по ORDER BY)
Вопрос в том, что order by rand
это:
-чтение всей таблицы
-использование временной таблицы
-файловая сортировка
P.S. 2 миллиона таблица 1,5 Гб, order by rand 10-15 сек выполняется)
Тестовое железо
2*2400 gGz
4 Gb RAM
Да я вроде бы не просто так сказал и вроде бы тестил
Я понимаю как работает, но у меня всё закончилось как раз переполнением стека.