У меня есть большая таблица в базе данных, называемой предложениями (более 300 000 строк).запрос порядка по rand() слишком медленно
, когда я выполняю нижеследующий запрос, он занимает 3 секунды.
$sql = "SELECT * FROM `offers` WHERE (`start_price`/`price` >= 2) ORDER BY RAND() LIMIT 1";
Таблица предлагает
`id` int(11) NOT NULL,
`title` text NOT NULL,
`description` text NOT NULL,
`image` text NOT NULL,
`price` float NOT NULL,
`start_price` float NOT NULL,
`brand` text NOT NULL
есть ли способ сделать это быстрее? Я хочу выбрать один случайный ряд (start_price
/price
> = 2)
Не заказывайте запрос, но выбирайте случайную строку из вашего результата с помощью php? – Kevin
генерировать случайный идентификатор, а затем передать запрос. Время занимает меньше времени. –
Обратите внимание, что сохранение цен как поплавок немного странно. И я думаю, что быстрее сказать: цена * 2
Strawberry