Pull to refresh
0
@DeathCoreread⁠-⁠only

User

Send message
Можно увидеть не только изменение техники, но и людей)

Не наткнулся ни на одну…
Вау, замечательно!
на… кхм… зачем?
Это не шутка?!
С ограничениями тут сложность. Можно сделать так

WHERE t.pk_id >= rnd AND column = value
LIMIT 1


Но тут есть свои проблемы…
Для каждой поставленной задачи должен быть свой подход.

Одного единого решения для всех задач не бывает.

Иногда необходим прототип с полностью продуманной архитектурой, которая легко масштабируемая в дальнейшем, а иногда написанный говнокодом за 1 день.
Зачем же такое на ночь выкладывать, когда мозг бездействует (
У вас на практике было что в любом случае «Преждевременная оптимизация — корень всех зол»?

По-моему, иногда, она очень даже уместна.

Если взять COUNT(*) вместо MAX(pk_id), то делает в 1000 раз медленнее…

не знаю даже, почему)

Вообще с COUNT не удалось получать результат менее чем за секунду.

P.s таблица InnoDB
Хм, для одной строки прирост почти в 10 раз с вашим вариантом подзапроса.

Но в таком случае можно было бы использовать MAX а не ORDER BY + LIMIT.

Хотя особой разницы не вижу, что-то, что то делается за 0.000 — 0.001 секунды…
Второй вариант с COUNT(*) прошел за 0.95 против 1.04… быстрее!

Просто проблема в том, что с COUNT даже 10 случайных строк получить будет довольно таки сложно.
Количество строк никак не известно)
у меня просто ноутбук старенький)

Я думаю у вас и ORDER BY rand() LIMIT * будет выполняться не 6 секунд)

За округления совершенно забыл…
хм… на моей таблице ваш запрос срабатывает за 3 секунды на 1 строку…

C rand() естественно.
<= выдаст самую первую запись. Может «больше или равно»?

Или я что-то не так понял…
1

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity