![]() |
|
Если преобразовать строку в числа - ускорит ли это поиск по вхождению строки? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
04.10.17
✎
13:17
|
Есть справочник физлиц
порядка 500 000 записей максимальная реальная длина: ФИО = 25+13+25 = 58 в базе постоянно ищут физ лиц по вхождению строки вот если ФИО преобразовать к списку чисел (ну допустим до 4-5 символов подряд) т.е. морозовяк выдаст такую таблицу чисел: 3638 3840 4038 3831 3138 3826 2655 5534 363840 384038 403831 383138 313826 382655 265534 36384038 38403831 40383138 38313826 31382655 38265534 эту таблицу в ТЧ потом пользователь набирает "мороз" - преобразуем эту строку в два набора по 4 символа - 36384038 и 38403831 и искать не ГДЕ Подобно %мороз% а ГДЕ Ключ = 36384038 и Ключ = 38403831 |
|||
1
Волшебник
модератор
04.10.17
✎
13:21
|
вот людям делать нехрен...
|
|||
2
DmitrO
04.10.17
✎
13:22
|
Проблема не в типе данных, а в механизме поиска основанном на b-tree индексах. Когда надо искать по подстроке такие индексы бесполезны.
Зачем изобретать полнотекстовый поиск, если его можно просто включить. Вот там природа индекса другая. :) |
|||
3
Fish
гуру
04.10.17
✎
13:23
|
(0) попробуй, потом напиши результат. А так +100 к (1)
|
|||
4
Волшебник
модератор
04.10.17
✎
13:23
|
Добавь полнотекстовый индекс по полю ФИО
Или добавь таб.часть "КомпонентыФИО", в котором храни отдельными строками фамилию, имя и отчество и ищи по индексированному полю так: или ищи так: ГДЕ КомпонентФИО LIKE "мороз%" т.е. без первого процента |
|||
5
H A D G E H O G s
04.10.17
✎
13:25
|
(0) Открой для себя волшебный мир SHA1/MD5, вот это все.
|
|||
6
Волшебник
модератор
04.10.17
✎
13:25
|
(4)+ У нас в базе есть такая таблица, в которой 100 млн строк. Поиск по ней мгновенный. Главное проиндексировать и задавать строку без первого процента
|
|||
7
RomaH
naïve
04.10.17
✎
13:27
|
(4) да все уже есть - но скорость не устраивает и нагрузка на сервер
поиск - фоновый по строке для справочника т.е. пока пользователь набирает лоб ром ал - проходит 2-3 запроса итоговый поиск занимает 2-3 сек хочу что бы вообще все летало про полнотекстовый- не надо |
|||
8
RomaH
naïve
04.10.17
✎
13:29
|
да, первого процента у нас тоже нет
|
|||
9
H A D G E H O G s
04.10.17
✎
13:31
|
(8) Тогда все должно работать мгновенно
|
|||
10
Волшебник
модератор
04.10.17
✎
13:32
|
(8) А в сабже первый процент есть.
|
|||
11
Сти
04.10.17
✎
13:58
|
(5) вот только волшебный мир потребует ввода полного имени до последнего символа, чтобы получить соответствующий волшебный хэш, дабы по нему потом искать ) а вот полнотекстовый поиск уже есть из коробки
|
|||
12
Serg_1960
04.10.17
✎
14:01
|
+(10) угу, есть. "по вхождению строки" - они там должны быть по определению. Имхо, надо по началу строки поиск переделать. Ведь мало кто будет искать ФИО по последним трём буквам "-адя" :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |