|
индексированный поиск по части текстового поля
|
|||
---|---|---|---|
#18+
Не подскажете, как организовать индексированный поиск по части текстового поля. Т.е. какой лучше создать индекс и какие запросы делать? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2002, 04:35 |
|
индексированный поиск по части текстового поля
|
|||
---|---|---|---|
#18+
смотря как ты хочешь искать. если с начала поля - то можешь построить индекс по этому полю и искать запросами вроде select * from my_table where name like 'ABC%'; только учти что это не будет работать для запросов с параметрами (т.е.вернее работать будет, но поиск будет не по индексу, а FULL SCAN) ну а если ищешь "по вхождению" то тут если строки не очень длинные может быть стоит вспомогательную таблицу сделать и писать туда все "правые" подстроки строки например для строки my_table ID NAME 12 СОБАКА записать во вспомогательную таблицу idx_table ID NAME 12 СОБАКА 12 ОБАКА 12 БАКА 12 АКА 12 КА 12 А создать индекс idx_table(name) и искать подобным запросом select * from my_table, idx_table where my_table.id=idx_table.id and idx_table.name like 'ABC%' но тут конечно idx_table может быть огромная (фактически в ней будет столько записей, сколько символов во всех строках из name_table) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2002, 09:56 |
|
|
start [/forum/topic.php?fid=40&fpage=537&tid=1581265]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
others: | 286ms |
total: | 404ms |
0 / 0 |