|
Поиск в MySQLОбсуждение темы Поиск в MySQL в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Есть база данных (~40М) с именами файлов. Посоветуйте, что надо сделать для ускорения поиска файла в БД. Искать через Like - ищет 1-15 ... |
|
Опции темы |
12.07.2007, 19:40 | #1 |
|
Есть база данных (~40М) с именами файлов. Посоветуйте, что надо сделать для ускорения поиска файла в БД. Искать через Like - ищет 1-15 сек., да и то, если сервер не нагружен (сервер очень слабый (p-3 1300МГц, 256М)).
|
|
14.07.2007, 11:08 | #2 |
|
Индекс на искомом поле создайте. У меня вот база «IP-адрес–Город» из 1,5 миллионов записей, выборка происходит за 57 ms.
|
|
14.07.2007, 13:18 | #3 |
|
Там весит на поле "имя файла" индекс типа "INDEX" - скорость поиска ~ 4 сек. без другой нагрузки. В таблице 321399 строк.
|
|
14.07.2007, 17:44 | #4 |
|
Попробуйте полнотекстовый поиск — возможно, он будет быстрее.
|
|
14.07.2007, 23:55 | #5 |
|
Да, он быстрее, но он, если я не ошибусь, ищет только слова, а не их части... Я пробовал - он быстрее во много раз, но файл "itslongfilename.exe" по запросу "longfilename" он не найдёт...
Конечно можно переделать таблицу - добавить дополнительное поле с частями названия файла: Код:
#$substr содержит части имени файла $filename="имя файла"; for($i=0;$i<=strlen($filename);$i++) { for($n=$i;$n<=strlen($filename);$n++) { $substr .= " ".substr($filename, $n, $i -$n); } } |
|
15.07.2007, 08:28 | #6 |
|
вряд ли поможет. я бы на вашем месте сменил платформу, скажем, на Postgres или Firebird, но вам-то это вряд ли подойдёт.
|
|
16.07.2007, 13:56 | #7 |
|
Хм... а помогло... база только теперь весит 650 мегов, но ищет через FullIndex намного быстрее. Только вот возникла проблема: как в нём искать строки со спецсимволами (. @ % $ +) и т.д. ? Вводил Against(++asd) - ищет только asd... Как быть?
|
|
16.07.2007, 16:49 | #8 |
|
экранируйте \+\+asd
правда, нет гарантии, что будет искать: полнотекстовый поиск — он на то и полнотекстовый, что ищет по тексту: распознаёт слова и производит поиск по ним. не думаю, что он будет искать спецсимволы. но не проверял. |
|
16.07.2007, 22:03 | #9 |
|
пробовал - не помогло...
|
|
17.07.2007, 09:55 | #10 |
|
Значит и не поможет.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск CMS | Noove | ASP, Perl, PHP и MySQL | 8 | 04.08.2010 15:49 |
Поиск | Niemans | ASP, Perl, PHP и MySQL | 2 | 20.01.2010 17:30 |
Поиск | oduvan4ik | Библиотека | 4 | 23.07.2008 22:10 |
Поиск по базе mysql | tend | ASP, Perl, PHP и MySQL | 2 | 16.08.2006 18:20 |
Поиск на Php | Lex | HTML, CSS, JavaScript | 4 | 10.07.2003 00:40 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|