Microsoft SQL vs MySQL vs Oracle vs PostgreSQL

I recently asked a question between PHP, ColdFusion, PERL, ASP, JSP, etc.

I'm wondering the same in terms of databases.  I'm looking for a good comparison of unbiased, honest opinions.  What is more stable?  What might be more scalable?  Which one is more powerful?  What is easier to use?  What’s the theoretical limits on each database?  What are the benefits and or downfalls you might have all seen between them and why do you choose the database software of your choice?

I'll award the answer to whoever has the most thorough answer.  (I'm most interested in Microsoft’s SQL vs MySQL vs Oracle vs PostgreSQL - however please don't limit your sharing of knowledge to these databases alone.  What you might have to say about another database platform might be very interesting here too!)

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

rebiesAuthor Commented:
I'll start from my experiences:

Microsoft SQL Server:  It has a fairly intuitive Enterprise Manager which makes it easy to use.  It's fairly expensive to start off and can get extremely expensive when you want more advanced features and reliability.   This is where I have 99% of my database experience.  It is nice in that a lot of people know it and finding developers who are familiar with it is not too hard.  It’s full-text searching capabilities are quite advanced in my opinion too.  The Query Analyzer and other wizards like DTS Import/Export make MS SQL Server much simpler and easier to learn too!  (My experience: 8 / 10)

Oracle:  This is very expensive for both hardware and for the people to manage it.  From everything I hear it is a very tough learning curve, however it could be the most powerful relational database out there...  But I have not used it.  (My experience: 0 / 10)

MySQL:  Its very powerful and fairly easy to use.  It is completely free which makes it an excellent choice and lots of people know it due to it’s wide success as an open source program.  From what I hear, the latest revision of MySQL makes it quite comparable to Microsoft’s SQL server in terms of performance and scalability.  Even though it does not ship with a user interface, PHPMyAdmin is decent at doing the job.   Though PHPMyAdmin does not seem nearly as powerful or easy to use as Microsoft's Enterprise Manager.   (My experience: 1 / 10)

PostreSQL: Unfortunately I don’t know anything about it.
I like this link for feature comparisons and theoretical limits:

A DB's primary feature is data integrity (which requires stability) and I do not know of any that are not stable once you have your apps working with them.

An inexperienced admin can make any of these DBs unstable in a hurry, so having an experieneced DBA on hand is a good thing.

SQL Server is nice to develop for and easy to maintain.  Why?  Because support for it via the MDAC is likely to be already installed on the user's computer.  Because the syntax favors making things easier on the developer.  Because Microsoft has tried to make the engine self-tuning more than the other companies.

Oracle's record locking is not only different in design, but more granular than SQL Server, so for large scale transaction processing applications, it may be the better choice.

Sybase is no longer that similar to MS SQL.  It has similar syntax, but the philosophy behind how to squeeze performance out of it has gone down a different path than MS SQL.  The admin tools weren't as nice for this DB as MS SQL Server, so I built a tool in a couple of weeks that has much of the same functionality as Enterprise Manager.  For any of these DBs, you're sure to find a company that has developed a better administrative interface.

Ultimately, you need to look at the requirements of the applications that you intend to build to determine which is best.  Any of the products you mention could be the "best" depending on the requirements.  Or you could ask different questions.
Unbiased? I'll do my best, here's my *opniion* on Microsoft’s SQL vs MySQL vs Oracle vs PostgreSQL.

As far as features, performance and power goes, Oracle is leader of the pack clearly. There are more features and tools available for Oracle than for any other DB. However, you will be paying, and paying dearly. You will be able to rest assured that your DB system is the best that money can buy.

Now in most cases, money *is* an object, and as such tradeoffs must be made. In my opinion, PostgreSQL is just below Oracle for powerand features. In fact, there are some things now that PGSQL even do better than Oracle especially in terms of transaction concurrency, PGSQL's MVCC (Multi Version Concurrency Control) model is widely accepted as beign the best conscurrency handling system there is. And its catching up. PGSQL version 8 is due out any day now, there are huge performance increases and features being added in the new version such as native Windows support (it will now install and run on any Win32 system including NT, 2000, XP and 2003), replication in the Slony-I project which brings PGSQL's scaleability to Oracle's calibre.

MySQL is a non-fitter in my opinion. It would be a great product, but since PGSQL's performance has taken great steps in the last few years there is little room for this between PGSQL and SQLite for MySQL to fit in. (SQLite is an ultralightweight, ultrafast SQL database that is embeddable and can be used for small simple projects, and is blisteringly fast in such uses.) MySQL has a *huge* following, and I'm risking a lynching bad mouthing it here, but I personally feel that it is a has-been product with benefits that were once leaders of the pack but have since been overtaken by superior products, namely PostgreSQL and SQLite.

MS SQL is a good product to work with if you're a die hard Windows and Microsoft user and are familiar enough with the other software that goes with it, and are comfortable paying large amounts of money for licences. Personally, with far superior open source options, I feel that MS SQL is a silly choice unless you have your hands tied by other considerations such as licencing constraints or compatibility with other MS products.

Finally, my overall view is that I use SQLite for small projects such as web polls and guestbooks where only the standard SQL commands are sufficient and there is no need for transactions, row/column/table locking, stored procedures and the like. I use PostgreSQL for large projects requiring transactions, stored procedures and with replication I cannot see myself involved in anything too big for PG. In fact I can't think of anything outside genetics and other highly specialised fields where PG would not suffice.

Finally, PG is distributed under the BSD licence, which means there is no chance of licencing compliance issues in your application, and you are guaranteed that there will never be any costs associated with the use of the DB itself.

I hope this information has been helpful.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Excuse my horrible typing, grammar and spelling. Thats what I get for typing something like that too fast ;-)
Helena Markováprogrammer-analystCommented:
As an addition to Oracle - there is a new pricing policy of Oracle server enterprise edition there (especially for small firms), so it is not expensive; the price is like SQL server.
And the next version of SQL Server will have an Express version for low or no cost.
For my experience, please see my answer to a similar question:
rebiesAuthor Commented:
Thanks for the comments guys.  Sorry I forgot to close this thread earlier.  I'll split points between rherguth and mrnaz as you both had interesting things to say.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.