Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Как сделать выбор случайной записи (Михаил Монашёв) 03/07/2003 - 13:29:32



From: Михаил Монашёв - 03/07/2003 - 13:29:32
Subject:Как сделать выбор случайной записи
-----------------
Таблица большая (50 000 записей 100 мб).

CREATE TABLE news (
id int(10) unsigned NOT NULL auto_increment,
description varchar(255) NOT NULL default '',
...
PRIMARY KEY (id)
) TYPE=MyISAM PACK_KEYS=1 CHECKSUM=1 DELAY_KEY_WRITE=1;

Это решение не очень нравится, т.к. работает медленно.

$max_id='SELECT MAX(id) FROM news';
$id = int(rand()*$max_id+1);
'SELECT description WHERE ID='.$id;
(лишнее опущено)

вот это тоже не шустро, т.к. выполняется расчёт случайного числа для каждой из 50 000 записей:

SELECT description ORDER BY RAND() LIMIT 1


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
9371



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |