MySQL 与 SQL Server 与 Oracle

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1913547/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 14:47:55  来源:igfitidea点击:

MySQL vs. SQL Server vs. Oracle

mysqlsql-serveroracle

提问by Kshitij Saxena -KJ-

I have always only used MySQL and no other database system.

我一直只使用MySQL,没有使用其他数据库系统。

A question came up at a company meeting today and I was embarrassed I did not know: To a developer, what earth-shaking functionality do MS or Oracle offer that MySQL lacks and which allows MS and Oracle to charge for their systems?

今天在公司会议上提出一个问题,我很尴尬我不知道:对于开发人员来说,MS 或 Oracle 提供了 MySQL 缺乏的哪些惊天动地的功能,并且允许 MS 和 Oracle 为他们的系统收费?

采纳答案by David Aldridge

I think other commentators are quite right to highligh all of the extra non-core RDBMS abilities that are bundled with the commercial solutions.

我认为其他评论员强调与商业解决方案捆绑在一起的所有额外的非核心 RDBMS 功能是非常正确的。

Here is a matrix of Oracle editions and features that would be worth browsing just for an understanding of the "extra" features, particularly in the context of what it would cost to develop and support your own version of them (if that is even possible) on a product like MySQL: http://www.oracle.com/us/products/database/product-editions-066501.html

这是一个 Oracle 版本和特性矩阵,值得浏览,以了解“额外”特性,特别是在开发和支持您自己的版本的成本的背景下(如果可能的话)在像 MySQL 这样的产品上:http: //www.oracle.com/us/products/database/product-editions-066501.html

For example, if you had a requirement that said: "Users shall be able to recover any previous versions of data that they have deleted/updated up to one week after the changes has been committed" then that implies a certain development overhead that I think would be much higher on a system that did not have a built-in feature like oracle's Flashback Query.

例如,如果您的要求是:“用户应能够恢复他们在提交更改后一周内删除/更新的任何先前版本的数据”,那么这意味着我认为一定的开发开销在没有像 oracle 的闪回查询这样的内置功能的系统上会高得多。

回答by Vinko Vrsalovic

The pure RDBMS layers of Oracle and MSSQL offer mainly a more mature programmable environment than MySQL and InnoDB. T-SQL and PL/SQL can't be yet matched by MySQL stored procedures and triggers.

Oracle 和 MSSQL 的纯 RDBMS 层主要提供比 MySQL 和 InnoDB 更成熟的可编程环境。MySQL 存储过程和触发器还不能匹配 T-SQL 和 PL/SQL。

The other differences are syntactic and slight semantic differences which make things easier or harder (like top 500 versus limit/offset).

其他差异是句法和轻微的语义差异,这使事情变得更容易或更难(例如前 500 名与限制/偏移)。

But the real killer is that there are a ton of integrated tools and services on top of the RDBMS layers of MSSQL (Reporting Services, Analysis Services) and Oracle (Data Warehousing, RAC) which MySQL doesn't have (yet).

但真正的杀手是在 MSSQL(报告服务、分析服务)和 Oracle(数据仓库、RAC)的 RDBMS 层之上有大量集成工具和服务,而 MySQL(目前)还没有。

回答by Curt

MySQL is not free!

MySQL 不是免费的!

It is widely understood to be free, but you are selling or distributing software packages that incorporate MySQL, it carries rather severe restrictions. In these cases, it is free only for Open Source projects or non-profit organizations. If you can manage to completely separate the database and drivers from the rest of your application, and force your customer to download and install MySQL on their own, you're probably okay.

人们普遍认为它是免费的,但是您正在销售或分发包含 MySQL 的软件包,它具有相当严格的限制。在这些情况下,它仅对开源项目或非营利组织免费。如果您可以设法将数据库和驱动程序与应用程序的其余部分完全分开,并强制您的客户自行下载和安装 MySQL,那么您可能没问题。

Otherwise, it costs $2,000 / year for the "standard" edition, which is roughly comparable to the cost of licensing SQL Server.

否则,“标准”版的成本为 2,000 美元/年,与 SQL Server 的许可成本大致相当。

Both are very good databases, but among SQL Server's advantages are:

两者都是非常好的数据库,但 SQL Server 的优势包括:

  • A rich and expressive procedural language (T-SQL)
  • A better query optimizer, and better performance in write-intensive environments
  • A strong set of ancillary tools and capabilities, including a programming environment, an ETL tool (SSIS), dimensional modeling (SSAS), a reporting environment (SSRS), and a reasonably sophisticated job scheduler.
  • Interactive debugging of stored procedures and UDFs.
  • A relatively easy-to-use window-based management tool that lets you do most administration tasks in a "clicky" way.
  • 丰富且富有表现力的过程语言 (T-SQL)
  • 更好的查询优化器,以及在写入密集型环境中的更好性能
  • 一组强大的辅助工具和功能,包括编程环境、ETL 工具 (SSIS)、维度建模 (SSAS)、报告环境 (SSRS) 和相当复杂的作业调度程序。
  • 存储过程和 UDF 的交互式调试。
  • 一种相对易于使用的基于窗口的管理工具,可让您以“点击式”方式执行大多数管理任务。

Many people are ideologically opposed to using Microsoft tools, or being locked into a Windows environment, and I can understand that. But MySQL is NOT free for business usage, and that doesn't seem to be widely understood.

很多人在意识形态上反对使用微软工具,或者被锁定在 Windows 环境中,我可以理解。但是 MySQL 不是免费用于商业用途的,这似乎并没有被广泛理解。

To review MySQL's licensing policy, take a look at it at their website: http://www.mysql.com/about/legal/licensing/index.html

要查看 MySQL 的许可政策,请访问他们的网站:http: //www.mysql.com/about/legal/licensing/index.html

回答by Matthew Watson

Some other things which oracle has over mysql.

oracle 对 mysql 的其他一些东西。

  • Queues
  • internal job scheduling
  • mature stored procedure language
  • patitioned tables
  • fine grained access control and auditing
  • strong recovery features ( eg flashback, rman, dataguard )
  • remote database links
  • application express
  • 队列
  • 内部作业调度
  • 成熟的存储过程语言
  • 分区表
  • 细粒度的访问控制和审计
  • 强大的恢复功能(例如闪回、rman、dataguard)
  • 远程数据库链接
  • 申请快递

回答by Karl

Until I administered RDBSes from other vendors Oracle oft repeated "readers don't block writers, writers don't block readers' meant little to me. I really didn't know much about handling locking problems in 8 years as an Oracle DBA. 2 years of Informix and 3 or SQL Server and trust me I know lots more about locking.

在我管理其他供应商的 RDBS 之前,Oracle 经常重复“读者不会阻止作者,作者不会阻止读者”对我来说意义不大。作为一名 Oracle DBA,我在 8 年的时间里对处理锁定问题并不太了解。2多年的 Informix 和 3 或 SQL Server,相信我,我对锁定了解得更多。

So I would say, in addition to the comments about support and non-RDBMS features, add locking behaviour.

所以我想说,除了关于支持和非 RDBMS 功能的评论之外,添加锁定行为。

回答by Nils Weinander

Oracle table clustersand single table hash clusters(which you won't find in SQL Server either).

Oracle表集群单表哈希集群(在 SQL Server 中也找不到)。

回答by ThinkJet

There are too many functionality to list. See Wikipedia reference in nullptr's message. But I suppose that really question asked at meeting is "To a developer, what earth-shaking functionality do MS or Oracle offer that MySQL lags in which allows MS and Oracle to charge for their systems and which can be effectively utilized by our company?"

功能太多,无法一一列举。请参阅 nullptr 消息中的维基百科参考。但我想在会议上提出的真正问题是“对于开发人员来说,MS 或 Oracle 提供哪些惊天动地的功能,使 MySQL 滞后,允许 MS 和 Oracle 为他们的系统收费,哪些可以被我们公司有效利用?”

All advantages are really advantages if matched with your needs ...

如果符合您的需求,所有优势都是真正的优势......

回答by Andy Monis

MySQL didn't offer the richer programming environment that Oracle and MSSQL offered, especially in early incarnations, when it didn't even have Stored Procedures. From my perspective I tend to put most of my business logic into the application, via DAO's or ORM mappers etc. Therefore the database engine underneath is less important and in theory the application is transportable. From a management perspective MSSQL offers a number of benefits (many already listed) that make the task of owning the database a lot easier. Microsoft also provide the excellent and lightweight SQLExpress for development, which I have found easy to work with and it integrates into Visual Studio nicely.

MySQL 没有提供 Oracle 和 MSSQL 提供的更丰富的编程环境,尤其是在早期版本中,它甚至没有存储过程。从我的角度来看,我倾向于通过 DAO 或 ORM 映射器等将我的大部分业务逻辑放入应用程序中。因此,底层的数据库引擎不太重要,理论上应用程序是可移植的。从管理的角度来看,MSSQL 提供了许多好处(许多已经列出),使拥有数据库的任务变得更加容易。Microsoft 还提供了出色的轻量级 SQLExpress 用于开发,我发现它很容易使用,并且很好地集成到 Visual Studio 中。

回答by Maximilian Mayerl

NOTE: I can't say anything about Oracle, so I will answer for SQL Server only.

注意:我不能说任何关于 Oracle 的事情,所以我只会回答 SQL Server。

Well, of course minor differences in the database engine, like MERGE statement, BULK INSERT, GROUPING SETs etc.

嗯,当然数据库引擎中的细微差别,例如 MERGE 语句、BULK INSERT、GROUPING SETs 等。

But I think the bigger part are things like Integration Services, Analysis Services and Reporting Services. Those are important technologies which in my opinion are absolutely worth the money they cost.

但我认为更大的部分是诸如集成服务、分析服务和报告服务之类的东西。这些都是重要的技术,在我看来绝对物有所值。

回答by David Aldridge

Inspired by ThinkJet's answer, I think that another factor that comes into play is, "To what extent are we willing to forgo database independence in order to provide faster, cheaper development of more performant applications?" If the company's emphasis is that all code must be portable between databases then there is little point in using anything other than the most simple RDBMS, and the improvements and advantages that Oracle and Microsoft have provided count for nothing.

受到 ThinkJet 回答的启发,我认为另一个起作用的因素是,“我们愿意在多大程度上放弃数据库独立性,以提供更快、更便宜的更高性能应用程序的开发?” 如果公司强调所有代码必须在数据库之间可移植,那么除了最简单的 RDBMS 之外,使用任何其他东西都没有什么意义,Oracle 和 Microsoft 提供的改进和优势毫无意义。

It takes very little to break true database independence, and my philosophy is that you should throw yourself wholeheartedly into leveraging every feature that you've paid for -- SQL enhancements, PL/SQL, etc..

打破真正的数据库独立性几乎不需要什么,我的理念是你应该全心全意地利用你所支付的每一个功能——SQL 增强、PL/SQL 等。

Others may differ, of course.

当然,其他人可能会有所不同。