SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 22.04.2010 01:48:56

mc-tolyan
Участник
Зарегистрирован: 22.04.2010
Сообщений: 9

Fulltext search

Здравствуйте.
Есть таблица MyISAM с количеством записей около 30млн.

CREATE TABLE IF NOT EXISTS `files` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `user` tinytext,
  `file_name` tinytext,
  `tth` tinytext,
  `size` bigint(20) DEFAULT NULL,
  `dop_1` tinytext,
  `file_type` int(1) DEFAULT NULL,
  `dop_3` int(11) DEFAULT NULL,
  `old_list` tinyint(1) DEFAULT NULL,
  `way_to_file` text,
  PRIMARY KEY (`id`),
  KEY `tth` (`tth`(10)),
  KEY `user` (`user`(4)),
  KEY `file_type` (`file_type`),
  KEY `for_del` (`old_list`),
  KEY `new_index` (`user`(3),`old_list`),
  FULLTEXT KEY `file_name` (`file_name`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;

Мне необходимо делать полнотекстовый поиск по полю file_name. При этом, хотелось бы, чтобы полнотекстовый поиск осуществлялся только в записях с определённым file_type. Как это сделать? Или так: как наиболее правильно составить поисковый запрос для наиболее быстрого поиска?
Спасибо.
PS: Иначе выбока получается очень долгая...

Неактивен

 

#2 22.04.2010 17:47:50

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Fulltext search

К сожалению, никак. При выборке из таблицы можно использовать только один
индекс. А file_type — это реально INT или на самом деле ENUM?

Неактивен

 

#3 23.04.2010 02:27:33

mc-tolyan
Участник
Зарегистрирован: 22.04.2010
Сообщений: 9

Re: Fulltext search

Жаль. Спасибо.
file_type - Поле создавалось как INT и везде отображается как INT. Видимо, реально INT:)
А это играет какую-то роль в данной ситуации?

Неактивен

 

#4 23.04.2010 02:58:01

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Fulltext search

Ну просто если бы их было, скажем, три вида, и выбирать нужно было бы один,
я бы посоветовал Вам сделать три таблички и искать в одной по полнотекстовому
индексу smile

Неактивен

 

#5 23.04.2010 03:05:06

mc-tolyan
Участник
Зарегистрирован: 22.04.2010
Сообщений: 9

Re: Fulltext search

Их 9 видов. Однако я уже исправляю на то, как Вы советуетеsmile Так в любом случае быстрее, чем всю таблицу смотреть.

Неактивен

 

#6 08.05.2010 19:22:55

mc-tolyan
Участник
Зарегистрирован: 22.04.2010
Сообщений: 9

Re: Fulltext search

Вопрос:
Полнотекствый поиск будет быстее осуществляться в поле с кодировкой cp1251, чем в поле с кодировкой utf-8?smile
Если да, то хотя бы ориентировочно, насколько быстрее?

Неактивен

 

#7 11.05.2010 12:11:59

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Fulltext search

Вопрос не в «быстрее». Полнотекстовый поиск работает с ошибками с многобайтовыми
кодировками, поэтому сравнивать нечего. Только cp1251. Ну или sphinx.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson