И так вопрос. Есть таблица test состоящая из id time text type
Нужен случайный вывод из этой таблицы одной строки
Про вариант SELECT * FROM `test` WHERE `type` = \'1\' ORDER BY RAND() LIMIT 1; пишут что он грузит сайт
Для ускорения предлагается такой вариант
SELECT `test`.* FROM (
SELECT id FROM `test`
WHERE `type` = \'1\'
ORDER BY RAND()
LIMIT 1
) as ids JOIN `test` ON `test`.id = ids.id;
Остановился на варианте
$result = mysql_query(\"SELECT MAX(id) FROM `test` WHERE `type` = \'1\'\"
$max_id = mysql_result($result, 0);
$rand = mt_rand(1, ($max_id - 1));
SELECT * FROM `test` WHERE `id` >= \".$rand.\" LIMIT 1;
Что посоветуете? Какой вариант лучше?