URL 테이블이 있으며 "fogbugz"또는 "amazon"와 같은 키워드가 포함 된 URL을 찾아야합니다. 키워드가 URL의 아무 곳에 나 나타나면 그 결과가되고 싶습니다. MySQL - 지정된 단어가 포함 된 URL에 대해 URL 테이블을 검색해야합니다.
지금, 내가 노력하고있어 : URL이 색인 경우에도, 예상 느린SELECT url FROM url WHERE url LIKE '%keyword%'
합니다.
저는 스크립팅 방법을 포함하여이를 빠르게 색인화 할 수있는 대체 방법에 대해 열려 있습니다. 각 URL을 "/"다음에 "_ 또는 -"문자로 분리하여 별도의 url2 키워드 테이블에 저장하는 방법에 대해 생각했습니다. 이 방법을 사용하면 "http://www.foo.com/directory/article-name"과 같은 URL은 키워드로 "foo" "directory" "article" "name"을 갖게됩니다. 그냥 생각.
물론 MySQL에서이 작업을 수행하는 더 간단한 방법이 있거나 일반적으로 선호하는 경우가 있습니다.
이 문제에 대한 귀하의 제안을 부탁드립니다. 감사.
방금 url을 가진 MyISAM 테이블을 만들었고, '% whatever %'검색은 InnoDB에서하는 시간의 1/20의 시간이 걸립니다. – Sambo
@Sambo : INNODB는 오버 헤드 트랜잭션, 관계형 무결성 등을 전달합니다. –
+1 : 저를 때려 눕히세요. –