Motor
Guest
Есть ли альтернатива?
Существует ftp-поиск. Вот структура таблиц:
CREATE TABLE `hosts_main` (
`idx` mediumint(9) NOT NULL auto_increment,
`host` varchar(50) NOT NULL,
PRIMARY KEY (`idx`),
UNIQUE KEY `host` (`host`))
CREATE TABLE `dir` (
`idx` mediumint(9) NOT NULL auto_increment,
`dir` varchar(240) NOT NULL,
`host_idx` mediumint(9) NOT NULL,
PRIMARY KEY (`idx`),
FULLTEXT KEY `dir` (`dir`))
CREATE TABLE `file` (
`file` varchar(120) NOT NULL,
`date` date NOT NULL,
`size` mediumint(9) NOT NULL,
`dir_idx` mediumint(9) NOT NULL,
FULLTEXT KEY `file` (`file`))
В таблицах dir ~ 200 000 записей, file ~ 4 000 000
Запрос:
select file, dir, host, date, size from file, dir, hosts_main where match (file) against ('"search"' IN BOOLEAN MODE) and file.dir_idx=dir.idx and dir.host_idx=hosts_main.idx order by date
Вопросы:
1. Можно ли оптимизировать это дело?
2. Как использовать LIKE (т.к. хотелось бы юзать шаблоны % и _) в запросе без катастрофического падения производительности?
Существует ftp-поиск. Вот структура таблиц:
CREATE TABLE `hosts_main` (
`idx` mediumint(9) NOT NULL auto_increment,
`host` varchar(50) NOT NULL,
PRIMARY KEY (`idx`),
UNIQUE KEY `host` (`host`))
CREATE TABLE `dir` (
`idx` mediumint(9) NOT NULL auto_increment,
`dir` varchar(240) NOT NULL,
`host_idx` mediumint(9) NOT NULL,
PRIMARY KEY (`idx`),
FULLTEXT KEY `dir` (`dir`))
CREATE TABLE `file` (
`file` varchar(120) NOT NULL,
`date` date NOT NULL,
`size` mediumint(9) NOT NULL,
`dir_idx` mediumint(9) NOT NULL,
FULLTEXT KEY `file` (`file`))
В таблицах dir ~ 200 000 записей, file ~ 4 000 000
Запрос:
select file, dir, host, date, size from file, dir, hosts_main where match (file) against ('"search"' IN BOOLEAN MODE) and file.dir_idx=dir.idx and dir.host_idx=hosts_main.idx order by date
Вопросы:
1. Можно ли оптимизировать это дело?
2. Как использовать LIKE (т.к. хотелось бы юзать шаблоны % и _) в запросе без катастрофического падения производительности?