|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
Есть таблица, в которой записи постоянно добавляются/удаляются. В таблице есть поле - счётчик показов. Количество записей заранее неизвестно: 1 000 - 1 000 000. Задача: делать частые выборки случайных записей (ограничим 10 штуками), отдавая предпочтение минимальным счётчикам показов, одновременно инкрементируя эти счётчики. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 15:25 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
igorrazin, Имхо, MySQL - плохой инструмент для такого рода выборок. За исключением разве что вырожденного случая, когда показываются 10 записей с минимальным счетчиком показов. Какая нужна зависимость вероятности показа от значения счетчиков показов? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 15:30 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
miksoft Имхо, MySQL - плохой инструмент для такого рода выборок. Что лучше использовать? miksoft Какая нужна зависимость вероятности показа от значения счетчиков показов? Не совсем понял. Чем меньше счётчик, тем выше вероятность показа. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 15:42 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
igorrazin miksoft Какая нужна зависимость вероятности показа от значения счетчиков показов? Не совсем понял. Чем меньше счётчик, тем выше вероятность показа. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 15:49 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
miksoft Но сама зависимость какая? в математическом смысле. Затрудняюсь ответить про математическую зависимость. В идеале - выбираем только из наименьшего счётчика, если там меньше 10, то берём все, остальные из следующего счётчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 18:10 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
igorrazin В идеале - выбираем только из наименьшего счётчика, если там меньше 10, то берём все, остальные из следующего счётчика. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 18:57 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
miksoft SELECT * FROM mytable ORDER BY count_field DESC LIMIT 10 А как же случайная выборка? И это очень долгий запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 22:35 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
igorrazin miksoft SELECT * FROM mytable ORDER BY count_field DESC LIMIT 10 А как же случайная выборка? И это очень долгий запрос. И он вполне случайный. Если подходящих записей с нужным count_field будет много, то MySQL выберет среди них нужное количество на свое усмотрение. Кроме того, эти записи получат инкремент поля count_field, и при следующем показе скорее всего уже выпадут из числа кандидатов (если, конечно, всего записей не слишком мало). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2021, 23:30 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
miksoft Кроме того, эти записи получат инкремент поля count_field... Мм, каким образом "эти записи получат инкремент поля count_field"? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 05:24 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
"отдавая предпочтение" с каким весом относительно "случайности"? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 08:00 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
miksoft При наличии индекса по полю count_field должен быть быстрый. Да, с индексом быстро, спасибо. miksoft Кроме того, эти записи получат инкремент поля count_field Есть ли способ их сразу инкрементировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 11:18 |
|
Задача выборки случайных записей
|
|||
---|---|---|---|
#18+
982183 "отдавая предпочтение" с каким весом относительно "случайности"? Желательно с абсолютным :) Ну похоже сработает только вариант с ORDER BY. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 11:20 |
|
|
start [/forum/topic.php?fid=47&fpage=10&tid=1828147]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
98ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 199ms |
0 / 0 |