Labutin
Новичок
При выборке случайной записи очень долго обрабатывается LIMIT
Имеется таблица:
В таблице 22 миллиона записей.
Нужно выбрать несколько случайных номеров. Очевидно, что order rand() неприменим.
Генерирую случайное число в диапазоне 1 - кол-во записей
и
SELECT number FROM sklad LIMIT случайное_число,1
такой запрос выполняется порядка 10 секунд!
Так и должно быть? Я мне нужно порядка 100 случайных номеров. LIMIT случайное_число,100 не подходит, т.к. номера не должны идти подряд.
Что посоветуете? Как получить 100 случайных номеров за приемлемое (секунд 20) время?
P.S. MySQL - 5.0.45
Имеется таблица:
Код:
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;
Нужно выбрать несколько случайных номеров. Очевидно, что order rand() неприменим.
Генерирую случайное число в диапазоне 1 - кол-во записей
и
SELECT number FROM sklad LIMIT случайное_число,1
такой запрос выполняется порядка 10 секунд!
Так и должно быть? Я мне нужно порядка 100 случайных номеров. LIMIT случайное_число,100 не подходит, т.к. номера не должны идти подряд.
Что посоветуете? Как получить 100 случайных номеров за приемлемое (секунд 20) время?
P.S. MySQL - 5.0.45