При выборке случайной записи очень долго обрабатывается LIMIT

Статус
В этой теме нельзя размещать новые ответы.

Labutin

Новичок
При выборке случайной записи очень долго обрабатывается LIMIT

Имеется таблица:
Код:
CREATE TABLE sklad (
  id int(10) unsigned NOT NULL auto_increment,
  maker varchar(30) NOT NULL default '',
  number varchar(30) NOT NULL default '',
  description varchar(255) default NULL,
  quantity varchar(30) NOT NULL default '',
  price_opt double NOT NULL default '0',
  price_opt2 double NOT NULL default '0',
  price_rozn double NOT NULL default '0',
  days varchar(10) default '',
  price_group_id int(10) unsigned NOT NULL default '0',
  provider_id int(11) NOT NULL default '0',
  store_id bigint(20) NOT NULL default '-1',
  PRIMARY KEY  (id),
  KEY number (number),
  KEY provider_id (provider_id),
  KEY store_id (store_id)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
В таблице 22 миллиона записей.
Нужно выбрать несколько случайных номеров. Очевидно, что order rand() неприменим.
Генерирую случайное число в диапазоне 1 - кол-во записей
и
SELECT number FROM sklad LIMIT случайное_число,1
такой запрос выполняется порядка 10 секунд!
Так и должно быть? Я мне нужно порядка 100 случайных номеров. LIMIT случайное_число,100 не подходит, т.к. номера не должны идти подряд.
Что посоветуете? Как получить 100 случайных номеров за приемлемое (секунд 20) время?

P.S. MySQL - 5.0.45
 

Фанат

oncle terrible
Команда форума
100 реально случайных из 22 миллионов - это нонсенс.
впослне можно обойтись некой псевдослучайнвм алгоритмом.

А в остальном -
 

Фанат

oncle terrible
Команда форума
Тема закрыта. Учитесь пользоваться поиском.

Прежде чем задавать вопрос - используйте поиск по форуму и FAQ:
На нахождение готового ответа на свой вопрос Вы потратите меньше своего и чужого времени, чем на создание новой темы.

Поиск по форуму

http://phpclub.ru/faq/
http://phpclub.ru/detail/
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху