It might appear nowadays that everybody just complements MySQL because that's precisely what everybody complements. I am focusing on an internet application that'll be getting through a great quantity of incoming data and am wondering basically should "go with MySQL" or maybe I ought to have a look at other open-source databases as well as commercial databases?

Thanks, Ben

EDIT: Must have pointed out, am searching for optimal performance, integration with ruby + rails running on debian 5 and cash is tight although whether it helps you to save money over time I'd consider investing into some thing costly.

I believe PostgreSQL is an extremely viable option to MySQL. It's a lot more Oracle-like.

I have published this before, however i have noreason to alter these tips:

MySQL is simpler to begin using.

Better UI tools. Faster, if you do not use Acidity. More tolerant of invalid data. Autoincrement posts are as simple as typing autoincrement. Permissions aren't as associated with the file systems and OS customers. Setting a delimiter is simpler than using pg's "dollar sign estimating" when writing a saved proc. In MySQL, you connect with all databases, not only individually.

Posgtres is a lot more standards compliant, but it is uglier and much more complicated, especially from the UI perspective. Previously require manual cleaning, and really makes sure referential integrity (the industry great factor that is one discomfort within the ass). Autoincrement is a lot more flexible, but requires sequences (which could me masked by utilizing serial), and wait, what's an OID?

If you don't fully realize or care much about databases, data validity, Acidity compliance, etc, but you will worry about ease and speed, you tend to choose MySQL.

A lot of (not every, however, many) "web developers" know a great deal about "web 2 . 0.Inch or PHP or Java, but aren't well versed about database theory or practice ("a catalog? what's that?"). They have a tendency to determine a database as only a fancy hashtable or bag of information, and even one that is not anywhere as dynamically changeable or forgiving like a hashtable.

Of these folks, MySQL -- because until 5. it had not been really an RDBMS, and in lots of ways is still not -- is really a blessing. It's "faster" compared to competition, and does not "spend your time" on "esoteric" database stuff an internet programmer does not want, understand, or see the need for.

For an individual having a database background, however, MySQL is really a minefield: stuff that will work (complicated sights, group bys, order bys in group bys) may go or may if you are lucky crash the server, or maybe you are unlucky just give results with incorrect data.

I have spent days working around a few of these things in of course complicated by not extremely complex sights and group bys.

And MySQL is not really faster. If you are using InnoDb tables for Acidity (or simply because at a lot more than $ 30 million rows, MyIsam tables often get crappy), yes a straight one-table choose is most likely faster compared to pg. But include joins, and pg is all of a sudden considerably faster. (MySQL is particularly bad at outer joins.)

To sum up: if for you the database is really a bag, should you never plan to do data mining or confirming, if you are mostly thinking about serving up large hunks of text with couple of relations or updates -- that's, if you are utilizing a database to energy your blog, MySQL is a superb choice.

But when you are really controlling data, should you realize that data lives longer and it is worth more to some business than front-finish programs and middle-tier business rules , if you want the characteristics of the real database, use pg.

A "web programmer" that has made the decision all his table structures could be auto-produced by Hibernate (as well as other ORM) examines might states, "too complicated" and "I wager complicated means more cost and reduced speed" and thus he complements MySQL.

When I stated, pg is way superior, and that i hate mucking with MySQL's bizarre bugs, and i believe that overall pg performance is most likely much better than MySQL for just about any even slightly complicated query.

But MySQL makes things look (stealthily) simple, which means you get many people that do not really understand database design foreseeing that MySQL is a superb choice.

Use pg. It's consistent, it's reliable, it's standards-compliant, it's faster on (even moderately) complicated queries, it does not completely mess up your schedule with strange bugs.