views:

44

answers:

3

Hi,

I'm starting a site which relies heavily on search. While it's probably going to search basic meta data in the beginning, it might grow to something bigger in the future.

So which DB/DB Engine is best in your opinion when it comes to search performance and future scalability?

Appreciate your help

A: 

It depends on what you are searching.

If you doing a lot of text searching then you want more than just a database - you also want a search algorithm. You can find them around the web and they can use several databases as backends.

However, if you only simple text searches then MySQL MyISAM offers full-text searching which I use for small amounts of text (less than a few GB).

Other searches include using keys and indexes which might lead you to PostgreSQL for it's rock solid ACID compliance or MySQL with INNODB.

Xeoncross
A: 

What is "search" ? What are you looking for and what kind of queries do you expect?

PostgreSQL is very powerfull, has full text search, btree, hash, gin and gist indexes. You can also configure you own types and operators, everything is there to optimize your searches in the database. It's up to you to use and tweak it for you situation.

PostgreSQL is easy to use with PHP, no problem at all. And it's free, sort of BSD-licence.

Frank Heikens
initially it'll search the fields of microposts (body, title, date...etc). Forgot to mention that the "did-you-mean" feature is a must.
KeyStroke
A: 

Depending on whatever you mean by “search” any database system might work. (MySQL is a well know and fast RDBMS).

If what you are looking for really is “full text search” then you should take a look into MySQL FULLTEXT indices (only usable with the MyISAM backend, IIRC), Lucene or Xapian.

The Zend Framework (written in PHP) has a ready adapter for lucene, see: http://devzone.zend.com/article/91

rockpiper
initially it'll search the fields of microposts (body, title, date...etc). Forgot to mention that the "did-you-mean" feature is a must.
KeyStroke
Please read the article I mentioned above. This is exactly what you need.
rockpiper