Оптимизировать скрипт запроса к базе
Пользуюсь данным скриптом для вывода случайных роликов из базы mysql (почему не order by rand, потому что база огромная и поле id_video с дырками.)
сайт имеет 70000 хостов в сутки, поэтому 70000 раз идёт одинаковый запрос к базе SELECT id_video FROM video; и потом все id_video собираются всегда в одинаковый массив. можно как-то избавиться от этого нелепого повторения?
// ------
$res = mysql_query("SELECT id_video FROM video;");
$ids = $idRN = array();
//собираем ID в один массив
while ($row = mysql_fetch_array($res)) $ids[] = $row[0];
//выберем N случайных из них
$K = 30;
while ($K-- > 0 && count($ids)) {
$RN = rand(0, count($ids) - 1);
$idRN[] = $ids[$RN];
unset($ids[$RN]);
}
//делаем ещё один запрос уже для выборки самих данных
$query_r_v = mysql_query("SELECT * FROM video WHERE id_video in (" .implode(',', $idRN). ");");
// -------