Microsoft SQL vs MySQL vs Oracle vs PostgreSQL

Posted on 2004-11-09
Last Modified: 2012-05-05
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!)

Question by:rebies
    LVL 1

    Author Comment

    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.
    LVL 9

    Assisted Solution

    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.
    LVL 1

    Accepted Solution

    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.
    LVL 1

    Expert Comment

    Excuse my horrible typing, grammar and spelling. Thats what I get for typing something like that too fast ;-)
    LVL 22

    Expert Comment

    by:Helena Marková
    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.
    LVL 9

    Expert Comment

    And the next version of SQL Server will have an Express version for low or no cost.
    LVL 3

    Expert Comment

    For my experience, please see my answer to a similar question:
    LVL 1

    Author Comment

    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.

    Featured Post

    IT, Stop Being Called Into Every Meeting

    Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

    Join & Write a Comment

    Introduction After workin in a plethora of programming languages like C, Pro*C, ESQL/C, C++, VC++, VB, Java, HTML,JavaScipt etc, technologies and frameworks like JSP, Servlets, Struts, Spring, IBatis etc and databases like MS Access, SQLServer, Inf…
    Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
    Video by: Steve
    Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…
    Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

    733 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    20 Experts available now in Live!

    Get 1:1 Help Now