2010-03-28 3 views
0

나는 검색에 많이 의존하는 사이트를 시작하고 있습니다. 처음에는 기본 메타 데이터를 검색 할 것이지만 앞으로는 더 커질 수 있습니다.어떤 DB/DB 엔진이 검색을 잘 지원합니까?

그래서 성능과 향후 확장 성을 검색 할 때 DB/DB 엔진이 당신의 의견에 가장 적합한?

당신의 도움 감사합니다

그것은 당신이 찾고있는 무엇에 따라 달라집니다

답변

0

.

당신이 다음 방금 데이터베이스보다 더 원하는 검색 텍스트의 많은 일 경우 - 당신은 또한 검색 알고리즘을합니다. 웹에서 찾을 수 있으며 여러 데이터베이스를 백엔드로 사용할 수 있습니다.

그러나 단순한 텍스트 검색은 다음의 MySQL의 MyISAM 내가 (GB 몇 이하) 적은 양의 텍스트에 사용하는 전체 텍스트 검색을 제공합니다.

다른 검색은 INNODB와 견고한 ACID 준수 또는 MySQL의의에 대한 PostgreSQL을 위해 당신을 이끌 수있는 키와 인덱스를 사용하여 포함한다.

0

"검색"이란 무엇입니까? 무엇을 찾고 있으며 어떤 종류의 쿼리를 기대합니까?

PostgreSQL의 매우 강력한이며, 전체 텍스트 검색, BTREE, 해시, 진 및 요점 인덱스를 가지고있다. 당신은 또한 자신의 유형과 연산자를 구성 할 수 있습니다, 거기에 모든 데이터베이스에서 검색을 최적화 할 수 있습니다. 상황에 따라 사용하고 조정할 수있는 것은 사용자의 몫입니다.

PostgreSQL은 PHP와 함께 사용하기 쉽고 전혀 문제가 없습니다. BSD 라이센스와 마찬가지로 무료입니다.

+0

http://devzone.zend.com/article/91이 처음에는 microposts (몸, 제목, 날짜 ... 등)의 필드를 검색 할 수 있습니다. "did-you-mean"기능은 필수 사항이라고 언급하는 것을 잊어 버렸습니다. – KeyStroke

0

"검색"의 의미에 따라 데이터베이스 시스템이 작동 할 수도 있습니다. (MySQL은 잘 알려진 빠른 RDBMS입니다.)

정말로 찾고있는 것이 "전체 텍스트 검색"이라면 MySQL FULLTEXT 색인 (MyISAM 백엔드, IIRC에서만 사용 가능), Lucene 또는 Xapian을 살펴 봐야합니다.

젠드 프레임 워크 (PHP로 작성) 루씬을위한 준비 어댑터가, 참조 :

+0

처음에는 마이크로 포스트 (본문, 제목, 날짜 ... 등) 필드를 검색합니다. "did-you-mean"기능은 필수 사항이라고 언급하는 것을 잊어 버렸습니다. – KeyStroke

+0

앞서 언급 한 기사를 읽어보십시오. 이것이 바로 당신이 필요로하는 것입니다. – rockpiper

관련 문제