|
|
|
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&msg=38173463&tid=1856956]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 253ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...