MySQL Table Performance - PullRequest
       9

MySQL Table Performance

0 голосов
/ 01 декабря 2011

У меня есть таблица в MySQL, которая содержит более 50 миллионов строк.Ниже приведена структура таблицы:

CREATE TABLE `links` (                                          
      `id` bigint(20) NOT NULL AUTO_INCREMENT,                      
      `loc` text NOT NULL,                                          
      `lastmod` datetime NOT NULL,                                  
      `changefreq` varchar(15) NOT NULL,                            
      `priority` float NOT NULL,                                    
      `isdownloaded` tinyint(1) NOT NULL,                           
      `mainrepoid` bigint(20) NOT NULL,                             
      PRIMARY KEY (`id`),                                           
      FULLTEXT KEY `locfulltext` (`loc`)                            
    ) ENGINE=MyISAM AUTO_INCREMENT=11426345 DEFAULT CHARSET=latin1

Полный текст включен в поле loc .Мне нужно получить все строки, содержащие имя и детали слова.Следующий запрос не дал ожидаемых результатов:

SELECT *
FROM links
WHERE 
MATCH (
   loc
)
AGAINST (
   'name +details' IN BOOLEAN MODE
)

, поэтому я вынужден использовать следующий запрос:

SELECT id, loc
FROM links
WHERE 
loc like '%name%' and
loc like '%details%'

Есть ли лучшая альтернатива?

1 Ответ

0 голосов
/ 01 декабря 2011

Я не знаю, какую версию mySql вы используете.Но следующий запрос, который вы задаете, очень хорошо работает на моем сервере.

SELECT *
FROM links
WHERE 
MATCH (
   loc
)
AGAINST (
   'name +details' IN BOOLEAN MODE
)

Если вы до сих пор сталкивались с проблемой этого запроса, попробуйте добавить знак плюс (+) перед name.Просто так:

SELECT *
FROM links
WHERE 
MATCH (
   loc
)
AGAINST (
   '+name +details' IN BOOLEAN MODE
)

Для получения дополнительной информации см. Следующую ссылку:

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...