0
50 백만 개가 넘는 행이있는 MySQL 테이블이 있습니다. 우는 소리는 테이블 구조입니다 :MySQL 테이블 성능
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 id, loc
FROM links
WHERE
loc like '%name%' and
loc like '%details%'
더 좋은 대안은 있는가 : 그래서 나는 다음과 같은 쿼리를 사용하도록 강요하고
SELECT *
FROM links
WHERE
MATCH (
loc
)
AGAINST (
'name +details' IN BOOLEAN MODE
)
: 다음 쿼리는 예상 된 결과를 반환하지 않았습니다?