Size: a a a

2020 July 21

A

Alex in MySQL
даты всего две в таблице, сегодня и вчера. в итоге 40М+ строк
партиции сильно помогут в этом случае?
источник

IZ

Ilia Zviagin in MySQL
Denis Efremov
Профессор, ну как так можно? Мат и пропаганда наркотиков в одном сообщении!
Наркотиков не было
источник

IZ

Ilia Zviagin in MySQL
Alex
Доброй ночи. подскажите как можно ускорить выборку по дате?
SELECT object_id FROM table WHERE date='2020-07-21' ORDER BY RAND() LIMIT 1;

выполняется 12s в таблице 1.3гб, ~30 миллионов строк

**
добавление индекса на дату только ухудшило ситуацию)
Там сколько строк с этой датой?
источник

VJ

Vladimir Juriev in MySQL
Alex
даты всего две в таблице, сегодня и вчера. в итоге 40М+ строк
партиции сильно помогут в этом случае?
В такой ситуации - несильно. Если цель - просто вывести абы какую строку, можно сделать предвыборку as-is на 10к строк, а потом их уже сортировать через rand.
источник

IZ

Ilia Zviagin in MySQL
Alex
даты всего две в таблице, сегодня и вчера. в итоге 40М+ строк
партиции сильно помогут в этом случае?
Ну а какой тогда тебе там индекс ?
источник

A

Alex in MySQL
Ilia Zviagin
Там сколько строк с этой датой?
18 999 563
источник

IZ

Ilia Zviagin in MySQL
Alex
даты всего две в таблице, сегодня и вчера. в итоге 40М+ строк
партиции сильно помогут в этом случае?
Патриции тебе не помогут вообще
источник

IZ

Ilia Zviagin in MySQL
Alex
18 999 563
Да все ясно уже...
источник

A

Alex in MySQL
Ilia Zviagin
Патриции тебе не помогут вообще
я тоже так думаю)
источник

V

Vova in MySQL
Может пересмотреть метод получения случайной записи?
источник

IZ

Ilia Zviagin in MySQL
Alex
Доброй ночи. подскажите как можно ускорить выборку по дате?
SELECT object_id FROM table WHERE date='2020-07-21' ORDER BY RAND() LIMIT 1;

выполняется 12s в таблице 1.3гб, ~30 миллионов строк

**
добавление индекса на дату только ухудшило ситуацию)
Тебе надо подписаться на наш научно-популяпный журнал ...
источник

A

Alex in MySQL
Vova
Может пересмотреть метод получения случайной записи?
на бэкенде написать и выбирать потом по id?
источник

A

Alex in MySQL
Ilia Zviagin
Тебе надо подписаться на наш научно-популяпный журнал ...
какой же?
источник

IZ

Ilia Zviagin in MySQL
Vova
Может пересмотреть метод получения случайной записи?
Не, это же архитектура...
источник

IZ

Ilia Zviagin in MySQL
Alex
какой же?
"НИКАК"
источник

V

Vova in MySQL
Alex
на бэкенде написать и выбирать потом по id?
Может выбрать рандомно id из диапазона и отфильтровать по нему
источник

A

Alex in MySQL
rand(id_min, id_max) ну примерно так это будет)
источник

VJ

Vladimir Juriev in MySQL
...предвыборки всё ещё работают. Дальше поступать в зависимости от того, что хочется сделать со строкой.)

Или, действительно, id из диапазона min-max и принудительный retry, если не попали.
источник

IZ

Ilia Zviagin in MySQL
Vova
Может выбрать рандомно id из диапазона и отфильтровать по нему
Может просто сгенерировать случайные данные и успокоиться?
источник

A

Alex in MySQL
и еще по выборке с order desc , order asc limit 1 чтоб узнать альфа и омега)
источник