powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как лучше хешировать строку адреса?
13 сообщений из 13, страница 1 из 1
Как лучше хешировать строку адреса?
    #39023483
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собсно сабж!
Есть в БД набор урлов, задача - вывести урл и сколько раз он есть в БД.
Запрос вроде бы простой, но сложности начинаются когда в БД под 2млн урлов. Понимаю, что строку нужно преобразовывать в какой то хеш, ибо группировать так - все погибает жестко. Натолкните куда двигаться!

Спасибо!
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39023490
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aramanЕсть в БД набор урловВ каком виде он там "есть"? DDL таблицы покажите.
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39023492
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aramanНатолкните куда двигаться!

1. у4итесь точнее ставить задачу:
примеры запросов, частота и вариабельность запросов.
Наблюдаемое время отклика. Желаемое время отклика.
Список имеюшихся индексов. ЕКСПЛЕЙН. ДДЛ таблиц.

2. Направление второе -- партицирование

3. ручная пред-агрегация....а потом двигатся в сторону DWH,
например бесплатные Мондриан/Пентахо и/или
свякие там КликСенсе, Микростратеги и иже с ними...
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39023500
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aramanСобсно сабж!
Есть в БД набор урлов, задача - вывести урл и сколько раз он есть в БД.
Запрос вроде бы простой, но сложности начинаются когда в БД под 2млн урлов. Понимаю, что строку нужно преобразовывать в какой то хеш, ибо группировать так - все погибает жестко. Натолкните куда двигаться!

Спасибо!

никаких сложностей с такими скромными объемами быть не должно.
создаете индекс по полю урла и дела.

Если вам надо группировать вообще 2 млн. урлов, то да, будет долго, но никакой хэш вам тут не поможет.

Если нужны более детальные советы _- таблицы, запрос, план, тогда будет разговор.
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39023510
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что тут даст DDL если я говорю про урл? Наверное я его храню не в INT. Ну ладно если это так необходимо - оно имеет тип TEXT (ибо длина урла может быть очень и очень длинной).

Группировать придется, иначе как посчитать корректно кол-во совпадений?
Ну сча запрос работает около 3-5 секунд, подозреваю, что можно выполнять быстрее.

Да и вообще, если абстрагироваться то как решают такие задачи в принципе?
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39023524
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
araman,

в принципе задачи решают путем создания правильной структуры бд, написания запросов к ней и их исполнения.

3- 5 секунд для такой интеграции нормально, я думал там у тебя часами она идет.
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39023530
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сори, я может быть не достаточно сильно абстрагировался.

в принципе такие задачи решают путем постановки задачи, анализа проблем при решении, проектирования решения, реализации решения и обязательно тестирования.

Так лучше?
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39023533
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivaraman,

в принципе задачи решают путем создания правильной структуры бд, написания запросов к ней и их исполнения.

3- 5 секунд для такой агрегации нормально, я думал там у тебя часами она идет.
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39023551
araman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ладно вопрос исчерпан. Ну не нужны хеши дак и не нужны. Поставил индекс, собственно все, что нужно было услышать.
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39024689
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мне хэши строк нравятся как идея... Была б такая задача - делел бы через хэш

В таблице еще одно поле с чексуммой от lower строки
Составной индекс (crc32, строка) - вроде бы тяжелее, а работает существенно быстрее просто индекса по строке

Конечно, на малых объемах без разницы, хотя тоже не проиграет. Но мороки больше, а потому более лениво
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39024703
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007А мне хэши строк нравятся как идея... Была б такая задача - делел бы через хэш



Расскажи, чем нравится, а я расскажу, почему ты неправ.
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39024733
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivCygapb-007А мне хэши строк нравятся как идея... Была б такая задача - делел бы через хэш



Расскажи, чем нравится, а я расскажу, почему ты неправ.чем?
Скоростью поиска
Число найти быстрее, чем длинный текст
Конечно, разные строки могут дать одинаковый хэш, поэтому после найденного числа еще нужно убндиться, что и текст совпадает

Когда-то проводил тестирование и убедился в существенно более быстром нахождении искомой строки. Тестировал в MS SQL
...
Рейтинг: 0 / 0
Как лучше хешировать строку адреса?
    #39024755
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007,

поддерживаю. имею такой же опыт. только я пошел дальше хеша и конвертил его в bigint.
примерно вот так (MS SQL):
Код: sql
1.
ABS(CONVERT([bigint], HASHBYTES('SHA2_512', COALESCE([long_text_column], ''))))


добавляю это как вычисляемый столбец, и потом на него индекс.
на порядка 3-4 миллионах коллизий (одинаковых значений) не наблюдается. ну и соответственно при поиске использую этот столбец - все летает.

не знаю, можно ли так в MySQL.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как лучше хешировать строку адреса?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]