2010-01-10 2 views
1

MySQL & ColdFusion을 사용하고 있습니다. 현재 TEXT 필드를 검색하기 위해 데이터베이스에서 LIKE를 사용하고 있습니다. 다행히도 내 데이터베이스는 비어 있지만 곧 테이블이 가득 차고 LIKE SQL 쿼리가 내 응용 프로그램을 죽일까 두려워.MYSQL with Coldfusion - 검색 기능을 만드는 솔루션?

나는 내 MySQL의 &의 ColdFusion 응용 프로그램과 함께 제공 검색 기능을 확장 적 할 수 있도록 모두 MySQL의 & ColdFusion과 함께 작동하는 솔루션을 찾고 있어요.

감사합니다.

+0

최근 coldfusion 태그 질문 중 하나를 참조하십시오. http://stackoverflow.com/questions/1998468/how-can-i-use-verity-to-index-and-search-database-content-in-coldfusion- 9 – Sergii

답변

1

뭐가 문제가 될 것이라고 생각하니? 부하 테스트를 한 적이 있습니까? 테이블의 최악의 시나리오 최대 크기는 얼마입니까? 당신은 그 수준에 그것을 채우고 그것을 시도 했습니까? 마지막으로 실제로 "텍스트"가 필요합니까? MySQL에는 매우 큰 varchar가 있습니다. 대신 그렇게할까요?

내 요점은, 이미 작동 할 수있는 가장 간단한 해결책이 있다는 것입니다. 어쩌면 당신은 다른 것을 과도하게 엔지니어링하기 전에 그것이 작동하지 않는다는 것을 증명해야합니까?

마지막으로 실제 질문에 대답하기 위해 데이터베이스를 verity 검색 색인에 캐시 한 다음 검색 할 수 있습니다 (CF 9는 다른 색인 엔진을 제공함). 하지만 너는 그것을 풀어 라이브 검색이 될 것이다.

3

확장 성 문제가있는 LIKE 운영자의 성능에 대해 걱정할 필요가 있습니다. 하지만 두 가지를 명심하십시오.

처음 : column LIKE 'pattern%'column의 색인이 생성되면 잘 작동합니다. 실제 성능에 문제가 발생할 수있는 column LIKE '%pattern%'입니다.

두 번째로, mySQL에는 좋은 전체 텍스트 검색 시스템이 내장되어 있습니다. http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

5

ColdFusion의 ColdFusion 9에 내장 된 Verity 검색 엔진 또는 Solr 검색 엔진 (Apache Lucene) 사용을 고려하십시오. 행운을 빕니다!

업데이트 : Coldfusion 9.0.1은 Solr (apache lucene) 검색 엔진의 몇 가지 단점을 해결했습니다. 그걸 써..!

1

앱에 대한 옵션인지는 잘 모르겠지만 일반적으로 실적 히트가 예상 될 때 사용자가 정의한 고급 검색에는 '% 패턴 %'와 같은 예약어가 있습니다. 가능하면 기본적으로 사용자가 선택한 검색 옵션이 '시작 프로그램'으로 설정됩니다. 저 트래픽 사이트에서 125 만 개의 레코드를 가진 MySql 5 DB에서 '% 패턴 %'를 검색했습니다. 데이터베이스는 색인이 생성되지 않은 필드에서도 병목처럼 보이지 않습니다. 고객은 화면에 표시된 모든 레코드를 원합니다. 10,000 개 이상의 레코드가 문제가되는 것 같습니다 (LOL). DB는 트래픽에 따라 생각하는 것보다 문제가 적을 수 있습니다.

관련 문제