|
Ускорить like '%слово%'
|
|||
---|---|---|---|
#18+
День добрый. Можно ли ускорить поиск типа: like '%слово%' каким-либо образом? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2008, 12:26 |
|
Ускорить like '%слово%'
|
|||
---|---|---|---|
#18+
KomedyantДень добрый. Можно ли ускорить поиск типа: like '%слово%' каким-либо образом? Проблема в том, что первый '%' не позволяет использовать индексы для поиска. Возможно, Basic Text Search Datablade что-то может предложить? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2008, 14:12 |
|
Ускорить like '%слово%'
|
|||
---|---|---|---|
#18+
Возможно фрагментация и/или PDQ немного ускорят... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2008, 17:26 |
|
Ускорить like '%слово%'
|
|||
---|---|---|---|
#18+
KomedyantМожно ли ускорить поиск типа: like '%слово%' каким-либо образом?Вопрос не совсем корректен. Ускорить, безусловно, можно. Вопрос в том - как? Как справедливо сказали выше первый % лишает вас возможности использовать индекс (или, говоря проще, обрекает на сканирование таблицы). Поэтому ускорить "дешево" не получится. А вот дальше вопросы. Сколько у вас там данных? Какова "ширина" этой таблицы? Насколько ситуация критична? Потому что все что можно предложить - это уже фокусы со структурами. Начиная от "сужения" (путем вынесения указанного поля в отдельную таблицу вида (ПК в базовой, Текст)) с целью снижения I/O при сканировании и вплоть до заполнения специальной таблицы специально нарезанными частями из этой (чтобы искать уже там и по LIKE 'фрагмент слова%'). Так же есть вероятность что сам факт возникновения вопроса говорит о том, что у вас не все гладко со структурой данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2008, 19:05 |
|
Ускорить like '%слово%'
|
|||
---|---|---|---|
#18+
Евгений Фадеев KomedyantМожно ли ускорить поиск типа: like '%слово%' каким-либо образом?Вопрос не совсем корректен. Ускорить, безусловно, можно. Вопрос в том - как? Как справедливо сказали выше первый % лишает вас возможности использовать индекс (или, говоря проще, обрекает на сканирование таблицы). Поэтому ускорить "дешево" не получится. А вот дальше вопросы. Сколько у вас там данных? Какова "ширина" этой таблицы? Насколько ситуация критична? Потому что все что можно предложить - это уже фокусы со структурами. Начиная от "сужения" (путем вынесения указанного поля в отдельную таблицу вида (ПК в базовой, Текст)) с целью снижения I/O при сканировании и вплоть до заполнения специальной таблицы специально нарезанными частями из этой (чтобы искать уже там и по LIKE 'фрагмент слова%'). Так же есть вероятность что сам факт возникновения вопроса говорит о том, что у вас не все гладко со структурой данных. Как - это не вопрос ... :) .... дорогу. осилит идущий ... Если не хочеш получит FULL SCAN - выбирай алтернативный путь ... Excalibur Text Search DataBlade ... хорошо индексирует и имеет компакный, спеиализированный индекс для полнотекстового поска .. :) С уважением, Вадим. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2008, 21:49 |
|
|
start [/forum/topic.php?fid=44&msg=35520015&tid=1608022]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 194ms |
0 / 0 |