Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Поиск в MySQL

Обсуждение темы Поиск в MySQL в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Есть база данных (~40М) с именами файлов. Посоветуйте, что надо сделать для ускорения поиска файла в БД. Искать через Like - ищет 1-15 ...


Закрытая тема
 
Опции темы
Старый 12.07.2007, 19:40   #1
Есть база данных (~40М) с именами файлов. Посоветуйте, что надо сделать для ускорения поиска файла в БД. Искать через Like - ищет 1-15 сек., да и то, если сервер не нагружен (сервер очень слабый (p-3 1300МГц, 256М)).
 
Старый 12.07.2007, 19:40
Ссылки
Старый 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
Значит и не поможет.
 
Старый 17.07.2007, 09:55
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск 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


Текущее время: 19:30. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум