|
|
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
Собсно сабж! Есть в БД набор урлов, задача - вывести урл и сколько раз он есть в БД. Запрос вроде бы простой, но сложности начинаются когда в БД под 2млн урлов. Понимаю, что строку нужно преобразовывать в какой то хеш, ибо группировать так - все погибает жестко. Натолкните куда двигаться! Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 13:27:42 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
aramanЕсть в БД набор урловВ каком виде он там "есть"? DDL таблицы покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 13:39:40 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
aramanНатолкните куда двигаться! 1. у4итесь точнее ставить задачу: примеры запросов, частота и вариабельность запросов. Наблюдаемое время отклика. Желаемое время отклика. Список имеюшихся индексов. ЕКСПЛЕЙН. ДДЛ таблиц. 2. Направление второе -- партицирование 3. ручная пред-агрегация....а потом двигатся в сторону DWH, например бесплатные Мондриан/Пентахо и/или свякие там КликСенсе, Микростратеги и иже с ними... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 13:40:35 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
aramanСобсно сабж! Есть в БД набор урлов, задача - вывести урл и сколько раз он есть в БД. Запрос вроде бы простой, но сложности начинаются когда в БД под 2млн урлов. Понимаю, что строку нужно преобразовывать в какой то хеш, ибо группировать так - все погибает жестко. Натолкните куда двигаться! Спасибо! никаких сложностей с такими скромными объемами быть не должно. создаете индекс по полю урла и дела. Если вам надо группировать вообще 2 млн. урлов, то да, будет долго, но никакой хэш вам тут не поможет. Если нужны более детальные советы _- таблицы, запрос, план, тогда будет разговор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 13:47:32 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
А что тут даст DDL если я говорю про урл? Наверное я его храню не в INT. Ну ладно если это так необходимо - оно имеет тип TEXT (ибо длина урла может быть очень и очень длинной). Группировать придется, иначе как посчитать корректно кол-во совпадений? Ну сча запрос работает около 3-5 секунд, подозреваю, что можно выполнять быстрее. Да и вообще, если абстрагироваться то как решают такие задачи в принципе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 13:58:28 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
araman, в принципе задачи решают путем создания правильной структуры бд, написания запросов к ней и их исполнения. 3- 5 секунд для такой интеграции нормально, я думал там у тебя часами она идет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 14:16:58 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
Сори, я может быть не достаточно сильно абстрагировался. в принципе такие задачи решают путем постановки задачи, анализа проблем при решении, проектирования решения, реализации решения и обязательно тестирования. Так лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 14:21:35 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
MasterZivaraman, в принципе задачи решают путем создания правильной структуры бд, написания запросов к ней и их исполнения. 3- 5 секунд для такой агрегации нормально, я думал там у тебя часами она идет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 14:22:15 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
Ладно вопрос исчерпан. Ну не нужны хеши дак и не нужны. Поставил индекс, собственно все, что нужно было услышать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 14:35:49 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
А мне хэши строк нравятся как идея... Была б такая задача - делел бы через хэш В таблице еще одно поле с чексуммой от lower строки Составной индекс (crc32, строка) - вроде бы тяжелее, а работает существенно быстрее просто индекса по строке Конечно, на малых объемах без разницы, хотя тоже не проиграет. Но мороки больше, а потому более лениво ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2015, 23:39:59 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
Cygapb-007А мне хэши строк нравятся как идея... Была б такая задача - делел бы через хэш Расскажи, чем нравится, а я расскажу, почему ты неправ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2015, 01:01:06 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
MasterZivCygapb-007А мне хэши строк нравятся как идея... Была б такая задача - делел бы через хэш Расскажи, чем нравится, а я расскажу, почему ты неправ.чем? Скоростью поиска Число найти быстрее, чем длинный текст Конечно, разные строки могут дать одинаковый хэш, поэтому после найденного числа еще нужно убндиться, что и текст совпадает Когда-то проводил тестирование и убедился в существенно более быстром нахождении искомой строки. Тестировал в MS SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2015, 06:58:14 |
|
||
|
Как лучше хешировать строку адреса?
|
|||
|---|---|---|---|
|
#18+
Cygapb-007, поддерживаю. имею такой же опыт. только я пошел дальше хеша и конвертил его в bigint. примерно вот так (MS SQL): Код: sql 1. добавляю это как вычисляемый столбец, и потом на него индекс. на порядка 3-4 миллионах коллизий (одинаковых значений) не наблюдается. ну и соответственно при поиске использую этот столбец - все летает. не знаю, можно ли так в MySQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2015, 08:54:22 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39023524&tid=1832846]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
140ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 476ms |

| 0 / 0 |
