数据库:MySQL、SqlServer、Oracle对比

那天在咖啡店里,我看到邻桌的程序员小张正悲伤地盯着电脑屏幕。
那是一台旧的联想台式机。
他手里的笔记本上写满了各种代码和注释,其中有一行写着“SELECT FROM users”。
小张说他的MySQL数据库性能太差,页面加载时间长达3 0秒。
我记得我以前学过数据库管理课程,所以我随口建议他看看MySQL配置,调整缓存和索引。
闻言,他似乎有了主意,连连点头。
我恍然大悟,不同的数据库管理系统就像风格各异的厨师,各有千秋。
例如,MySQL就像一个快餐厨师,简单而快速,但不够精致; Oracle就像米其林星级厨师,精致考究,但价格昂贵。
对于小张来说,可能前者更合适。

mysql和oracle哪个性能更好

mysql和oracle的区别(功能性能、选择、使用它们时的sql等对比)

MySQL 和 Oracle 有很大不同。

到 2 02 2 年,MySQL 将被很多人使用。
我后来意识到,并发主要是表级锁定,而且粒度非常高。
像 InnoDB 这样的引擎支持行级锁定,但依赖于索引。
如果表没有索引或者SQL语句没有使用索引,表级锁会导致并发性能较差。
我见过一些项目,其中的表非常大,没有索引,并且查询只是挂起。

甲骨文是另一个故事。
在小块中使用行级锁定。
它只锁定需要的部分数据,与索引无关。
所以Oracle的并发性得到了很好的实现。
与 2 02 2 年的任何金融项目一样,随着用户数量的增加,Oracle 的波动将小于 MySQL。

Oracle 在一致性方面很强。
它支持可串行化的隔离级别,最高的一致性。
使用撤消表空间创建多个版本。
如果您检查,您可以看到快照数据。
MySQL,呃,有一个读提交,一个会话正在读取,另一个会话可以更改数据,但它们不能将数据追加到表的末尾。
更新也需要独占锁。

事务支持,Oracle已经支持了。
MySQL 仅支持使用 InnoDB 引擎的事务。
我记得2 02 2 年的一个小项目使用了MyISAM,后来我们发现它无法回滚,这是一个陷阱。

数据持久化,Oracle非常可靠。
提交的数据记录在在线日志中并存储在磁盘上。
即使重新启动数据库或重新启动主机,也可以从日志中恢复。
MySQL默认自动提交,但更新期间重新启动可能会导致数据丢失。
2 02 2 年有一次,半夜一台主机宕机,MySQL数据丢失,让人相当头疼。

如何提交:Oracle默认不会自动提交,所以必须手动提交。
MySQL默认自动提交。

备份和恢复也有很大不同。
Oracle逻辑备份不锁表,数据一致。
MySQL 逻辑备份需要表锁定,这会产生业务影响。
热备份,Oracle有RMAN,热备份不影响其使用。
MySQL MyISAM 需要锁定表。
InnoDB有ibbackup,但是昂贵且繁琐。
我记得有一家公司使用MySQL,人们因为热备而上蹿下跳。

SQL语句、MySQL扩展等。
与limit语句一样,limit函数也被广泛使用。
选择一次插入多行并查看托管数据而不追加。
Oracle 比较传统,灵活性较差。

请复制。
Oracle 有很多特性。
DataGuard支持双机和多机灾难恢复,如果主数据库损坏,可以自动切换。
然而,配置复杂。
MySQL复制很简单,但是如果主库损坏,从库数据就会丢失,所以需要手动切换。

对于性能调优,Oracle有多种工具。
你可以使用一切:AWR、ADDM、SQLTrace、TKPROF 等 MySQL 慢查询对数,简单。

将MySQL用户绑定到主机的安全权限有点风险。
Oracle 遵循现有规则并且对此非常满意。

分区表,Oracle已经成熟了。
MySQL 很一般。
我有一个项目想要使用 MySQL 分区,但是遇到了很多问题。

管理工具,Oracle等。
您可以使用命令行、图形界面和Web工具中的一切。
MySQL工具很少,而且Linux上下载phpMyAdmin需要额外安装包,有些麻烦。

授权获得技术支持,Oracle将收取一定费用。
MySQL 是开源且免费的,但如果出现问题,您必须自己修复。

所以,如果你正在进行像2 02 2 这样的大型项目,需要高并发、高一致性和健壮的事务,Oracle将能够做到。
如果预算不大,对并发和一致性要求不高,MySQL性价比高。