Size: a a a

Генератор непрочитанных сообщений

2020 April 03

AM

Artem Molotov in Генератор непрочитанных сообщений
Сейчас тебе, наверное, нужно гуглить о сортировке по хеш функциям
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Но оно не особо оптимально (особенно, если данных много)
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Если тебе там order by random() хватает, то и сортировка по хеш функции будет +- норм
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
(кажется)
источник

А

Артём in Генератор непрочитанных сообщений
Artem Molotov
Сейчас тебе, наверное, нужно гуглить о сортировке по хеш функциям
Есть пример? Хотя бы понять, о чём речь
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Я могу только тупой пример привести, т.к. видел инфу уже хз когда, очень давно. Будет не оптимально, но рабоче. Вот:

SELECT *, MD5(CONCAT(id, "<user_sort_key>")) as sort_hash ORDER BY sort_hash
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
оно неоптимально, конечно
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
но не сильно отличается от order by rand()
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
Artem Molotov
Я могу только тупой пример привести, т.к. видел инфу уже хз когда, очень давно. Будет не оптимально, но рабоче. Вот:

SELECT *, MD5(CONCAT(id, "<user_sort_key>")) as sort_hash ORDER BY sort_hash
а как ты будешь на следующий день перестраивать?
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Artem Molotov
Я могу только тупой пример привести, т.к. видел инфу уже хз когда, очень давно. Будет не оптимально, но рабоче. Вот:

SELECT *, MD5(CONCAT(id, "<user_sort_key>")) as sort_hash ORDER BY sort_hash
хеш функции могут быть разные, нужно брать самые оптимальные
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
а, другой user_sort_key проставлять?
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Alexander Kladov
а как ты будешь на следующий день перестраивать?
меняешь ключ
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Alexander Kladov
а, другой user_sort_key проставлять?
да
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
вообще хеш функций есть тьма и были прикольные, но я уже не помню
источник

А

Артём in Генератор непрочитанных сообщений
Artem Molotov
Я могу только тупой пример привести, т.к. видел инфу уже хз когда, очень давно. Будет не оптимально, но рабоче. Вот:

SELECT *, MD5(CONCAT(id, "<user_sort_key>")) as sort_hash ORDER BY sort_hash
Не уловил смысла
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Артём
Не уловил смысла
1) Хранишь ключ для сортировки пользователя (к примеру ид сессии; желательно не длинный)
2) Вставляешь в запрос.
3) Каждая ячейка получает свой хеш (почти уникальный)
4) Сортируешь по хешу
5) Через сутку меняешю ключ для сортировки пользователя
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Но на миллионе записей этот запрос будет долгим, около пол сек
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
если железо не топ
источник

AK

Alexander Kladov in Генератор непрочитанных сообщений
вариант с setseed поинтереснее кмк
источник

AM

Artem Molotov in Генератор непрочитанных сообщений
Alexander Kladov
вариант с setseed поинтереснее кмк
можно пример?
источник