|
MySQL и очень большая таблица + having
|
|||
---|---|---|---|
#18+
Коллеги, добрый день. Нужна помощь... Данные: 34млн записей в таблице Код: sql 1. 2. 3. 4. 5. 6.
Как видно запрос просто ужасный, выполняется 6-8 секунд... Это просто кошмар. Смысл в том что у нас есть целочисленый хеш определенной длинный и нам нужно найти все товары у которых совпадает к примеру больше 59 битов. Сврего рода нечеткйи поиск, но со своей спецификой. Как хранятся данные. 1ин хеш это n записей в таблице hashes где n - колличество бит в хеше, в колонке hash хранится значение одного разряда, т.е если значение опложительное и находится в первом разряде значит будет '1', если 5ый разряд будет '5', если в 6ом разряде ноль, значит будет '-6'. Понятно что при запросе у нас и full scan и file sort и все все что тольк может быть... Подскажет как можно поменять структуру таблицы, или использовать что то отличное от MySQL myisam, пока посматриваем в сторону mongoDB с ее Map/Reduce, но может есть еще что более подходящее... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 15:36 |
|
MySQL и очень большая таблица + having
|
|||
---|---|---|---|
#18+
Чуть не забыл вот структура таблицы. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 15:40 |
|
MySQL и очень большая таблица + having
|
|||
---|---|---|---|
#18+
Cxd, здесь была дискуссия, гляньте ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 07:54 |
|
MySQL и очень большая таблица + having
|
|||
---|---|---|---|
#18+
madbear, Интересно, но всеравно full scan... Но есть решения поинтереснее Metric tree BK-tree M-tree VP-tree Cover tree Еще бы понять как это прикрутить к БД ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 18:43 |
|
MySQL и очень большая таблица + having
|
|||
---|---|---|---|
#18+
можно попробовать так 1. пихаем все что внутри in() в memory-таблицу 2. делаем запрос с применением inner join по полю `hash` если будете пробовать -отпишите выросла ли скорость. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.03.2013, 18:38 |
|
MySQL и очень большая таблица + having
|
|||
---|---|---|---|
#18+
chabapok, все намного проще. Пришлось отказатся от такого способа хранения данных. Решили просто ложить хеши как есть, в виде чисел, а потом просто используя битовые операции выполняем запрос. Даже с учетом того что мускуль делает фулл скан, пробежатся по 500тыщам записей проще чем по 32ум милионам (500*мерность хеша), т.е из 2ух зол выбрали наименьшее. Это дало прирост в скорости на порядок. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2013, 15:20 |
|
|
start [/forum/topic.php?fid=48&fpage=12&tid=1856956]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 134ms |
0 / 0 |