What are the major differences between databases?

后端 未结 11 2082
太阳男子
太阳男子 2021-02-05 15:01

I\'m not fanatic on any database but I wish to see differences between vendors.

For instance, I use mostly Oracle and I see that others (MySQL, SQL Server, PostgreSQL, .

相关标签:
11条回答
  • 2021-02-05 15:22

    A major difference between MySQL and almost every other database out there, with the exception of SQLite, is that MySQL only knows one kind of join -- a nested loop.

    This is ok for the kind of OLTP, bare-bones workload MySQL was ostensibly designed for (the same design principles led to not implementing features like triggers, views, and subqueries for a while), but it's deadly for major OLAP work. Don't take my word for it, read Peter Zaitsev: http://peter-zaitsev.livejournal.com/758.html . It is also horribly slow on subqueries, which it learned to do just recently. Small steps, I suppose..

    Oracle is very advanced, has a lot of features, and a lot of them cost extra money. It's a bear to set up and support; but if you can afford the DBAs and the maintenance, it performs very well. Did I mention cost and maintenance? Just thought I'd repeat that. Nothing but respect for the Oracle engineers, though, they have built some awesome stuff.

    One place where Oracle fails (as do most others) is multi-terabyte workloads. For that, you want to go to specialists like Teradata (best in class, extremely expensive), Greenplum, AsterData, Netezza, and others.

    I've heard nothing but good things about SQL Server -- except the fact that it runs only on Windows.

    MySQL is easy to set up, fast for OLTP, and generally takes the approach of doing few things, and doing them well.

    PostgreSQL is kind of the opposite -- it's a database researcher's favorite playground, which means it has a dozen different join strategies, storage engines, advanced optional packages, and all kinds of stuff. It's slower than MySQL when doing things MySQL does well, and blows it out of the water when doing things MySQL just doesn't know how to do (see above, with hash joins).

    DB2 is supposed to be good; no personal experience. It better be good, with all those people at Almaden.. Same with Sybase.

    0 讨论(0)
  • 2021-02-05 15:24

    Here are some features about Sybase SQL Anywhere that (AFAIK) don't exist in other database products:

    • table-level encryption
    • column compression (available as an option with Oracle Enterprise edition, built-in to all versions of SA)
    • stored procedures can be written in SQL, java, perl, php, C/C++, C#, or VB.NET

    Full disclosure: I work for Sybase -- I am a developer on the SQL Anywhere server team. This is not meant as advertising or rep-whoring. If requested, I'll mark this answer as community wiki.

    0 讨论(0)
  • 2021-02-05 15:24

    MySQL: REPLACE. It's an "DELETE, then INSERT" which will Replace an existing row.

    0 讨论(0)
  • 2021-02-05 15:28

    I don't have a lot to contribute other than to say that Sybase ASE is, in my opinion, the red-headed step child of RDBMS'. It's missing many of the handy functions that you take for granted with SQL Server or Oracle (and even other flavors of Sybase), you can't link servers and do distributed queries without 3rd party tools, Sybase management tools and IDE's are limited and very poor (again, my opinion), and it's just painful to work with. I guess there's a reason Sybase has only 3% of market share.

    Side note: If, like me, you must work with multiple RDBMS' and you need a good tool for that, check out Aqua Data Studio from AquaFold. I just started using it and it's really good. It's also got some great utilities like ER modeling and compare tools built in.

    0 讨论(0)
  • 2021-02-05 15:29

    SQL Server has a built in Auto Incrementing feature you can add to a column when you want a simple incrementing integer for a table.

    In Oracle, you need to create a sequence and apply the appropriate trigger to have it increment itself.

    0 讨论(0)
提交回复
热议问题