MySQL,SQL server,oracle 三种数据库有什么区别?
回答·26
最热
最新
- 1、MySQL 与 SQL Server 之间的区别 (1)MySQL 是免费开源;MySQL 跨平台,Windows 和 Linux 都有对应的版本。 SQL Server 是收费的;SQL Server 只能在 Windows 平台上使用。 (2)性能和安全方面,MySQL 比 SQL Server 复杂,MySQL 的管理都是文字命令界面,要借助工具才能图形管理,SQL Server 相对简单点,本身就是图形界面容易入手。 2、MySQL 与 Oracle 之间的区别 (1)对事务的提交 MySQL 默认是自动提交,而 Oracle 默认不自动提交,需要用户手动提交,需要在写 commit;指令或者点击 commit 按钮。 (2)分页查询 MySQL 是直接在 SQL 语句中写"select… from …where…limit x, y",有 limit 就可以实现分页;而 Oracle 则是需要用到伪列 ROWNUM 和嵌套查询。 (3) 事务隔离级别 MySQL 是 read commited 的隔离级别,而 Oracle 是 repeatable read 的隔离级别,同时二者都支持 serializable 串行化事务隔离级别,可以实现最高级别的读一致性。每个 session 提交后其 session 才能看到提交的更改。Oracle 通过在 undo 表空间中构造多版本数据块来实现读一致性,每个 session 查询时,如果对应的数据块发生变化,Oracle 会在 undo 表空间中为这个 session 构造它查询时的旧的数据块。 MySQL 没有类似 Oracle 的构造多版本数据块的机制,只支持 read commited 的隔离级别。 一个 session 读取数据时,其他 session 不能更改数据,但可以在表最后插入数据。session 更新数据时,要加上排它锁,其他 session 无法访问数据。 (4)对事务的支持 MySQL 在 innodb 存储引擎的行级锁的情况下才可支持事务,而 Oracle 则完全支持事务。 (5)保存数据的持久性 MySQL 是在数据库更新或者重启,则会丢失数据,Oracle 把提交的 sql 操作线写入了在线联机日志文件中,保持到了磁盘上,可以随时恢复。 (6)并发性 MySQL 以表级锁为主,对资源锁定的粒度很大,如果一个 session 对一个表加锁时间过长,会让其他 session 无法更新此表中的数据。 虽然 InnoDB 引擎的表可以用行级锁,但这个行级锁的机制依赖于表的索引,如果表没有索引,或者 sql 语句没有使用索引,那么仍然使用表级锁。 Oracle 使用行级锁,对资源锁定的粒度要小很多,只是锁定 sql 需要的资源,并且加锁是在数据库中的数据行上,不依赖与索引。所以 Oracle 对并发性的支持要好很多。 (7)逻辑备份 MySQL 逻辑备份时要锁定数据,才能保证备份的数据是一致的,影响业务正常的 dml 使用,Oracle 逻辑备份时不锁定数据,且备份的数据是一致。 (8)复制 MySQL:复制服务器配置简单,但主库出问题时,丛库有可能丢失一定的数据。且需要手工切换丛库到主库。 Oracle:既有推或拉式的传统数据复制,也有 dataguard 的双机或多机容灾机制,主库出现问题是,可以自动切换备库到主库,但配置管理较复杂。 (9)性能诊断 MySQL 的诊断调优方法较少,主要有慢查询日志。 Oracle 有各种成熟的性能诊断调优工具,能实现很多自动分析、诊断功能。比如 awr、addm、sqltrace、tkproof 等。 (10)权限与安全 MySQL 的用户与主机有关,感觉没有什么意义,另外更容易被仿冒主机及 ip 有可乘之机。 Oracle 的权限与安全概念比较传统,中规中矩。 (11)分区表和分区索引 MySQL 的分区表还不太成熟稳定。 Oracle 的分区表和分区索引功能很成熟,可以提高用户访问 db 的体验。 (12)管理工具 MySQL 管理工具较少,在 linux 下的管理工具的安装有时要安装额外的包(phpmyadmin, etc),有一定复杂性。 Oracle 有多种成熟的命令行、图形界面、web 管理工具,还有很多第三方的管理工具,管理极其方便高效。 (13)最重要的区别 MySQL 是轻量型数据库,并且免费,没有服务恢复数据。 Oracle 是重量型数据库,收费,Oracle 公司对 Oracle 数据库有任何服务。 3、Oracle 与 SQL Server 之间的区别 (1)操作的平台不同 Oracle 可在所有主流平台上运行,Oracle 数据库采用开放的策略目标,它使得客户可以选择一种最适合他们特定需要的解决方案。客户可以利用很多种第三方应用程序、工具。 SQL Sever 在 Window 平台上的表现,和 Windows 操作系统的整体结合程度,使用方便性。 (2)安全性 Oracle 的安全认证获得最高认证级别的 ISO 标准认证,而 SQL Server 并没有获得什么安全认证。这方面证明了 Oracle 的安全性是高于 SQL Server 的。 (3)性能不同 SQL Server 多用户时性能不佳 Oracle 性能最高, 保持 windowsNT 下的 TPC-D 和 TPC-C 的世界记录。 (4)开放性 SQL Server 只能在 windows 上运行,没有丝毫的开放性,操作系统的系统稳定对数据库是十分重要的。 Oracle 能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。 (5)客户端支持及应用模式 SQL Server C/S 结构,只支持 windows 客户,可以用 ADO,DAO,OLEDB ,ODBC 连接。 Oracle 多层次网络计算,支持多种工业标准,可以用 ODBC, JDBC,OCI 等网络客户连接。 (6)分区表 SQLSERVER 不能。 ORACLE 能根据 INDEX 的值的范围,把数据存放到不同的硬盘空间。
- 我们不一样 不一样啊不一样
- 很明显名字不一样嘛,真是😆😆😆
- sql server 主要在 ms 系环境下使用。mysql 和 oracle 都是一家的。oracle 侧重商用。适用于复杂环境和稳定性要求较高的应用。mysql 主要是免费。性能不差。所以中小型应用比较适合。当然 mysql 也可以商用。价格比较合理
- 从价格(性能)从高到低排序,DB2、Oracle、SQL Server、My SQL 创业公司和互联网公司喜欢 MySQL,优点在于免费,比如阿里巴巴和字节跳动,早期都在民房创业,早期的 mysql 的,尤其是 5 及以前版本缺少很多商业数据库功能,很容易遇到瓶颈,所以搞 mysql 的一般喜欢问怎么实现,互联网公司属于要吗屌丝翻身,要吗就是三五年后倒闭,mysql 后被 oracle 收购,mysql 功能也在逐渐丰富 SQL Server 优点在于简单易用,常见于中小型企业,有一定资金但是资金不是很多 Oracle 优点在于常见于功能齐全,一些有实力的公司,一般传统企业很少遇到瓶颈,底层是 share disk DB2 优点稳定和性能强大,ibm 研发,最早提出关系型数据库,底层 share nothing,算是分布式数据库,性能强大,但是价格昂贵,市场份额少,基本上是中大型国企和中大型银行在用 从就业角度来讲选择 mysql 和 oracle 会好一点,mysql 跟对人说不定翻身了,oracle 比较体面也比较好找工作
- 三种数据库各有特点,这样讨论并没有实际的意义。我认为讨论之前先要从宏观入手,看看项目本身需要什么级别的数据库,如果项目足够大,oracle 这点费用根本不算什么,本身也有足够的资源部署,那项目首选一定是 oracle,至少这样对得起项目与大家的努力。不要项目快要完成了发现其他免费数据库和低价格数据库有某些不完善,需要通过其他技术手段做弥补。 其次,如果一个小的项目也不要好高骛远,选择一个很贵的数据库,虽然网上可以下载破解版的数据库,但是现在对正版的要求越来越严格,有可能项目交付的时候没问题,当用户使用一段时间以后被软件公司发现,是需要付费的,这个费用找不到开发人员,是需要使用者付费,这也是坑人呀。 SQL SERVER 也是不错的,中型数据库,维护容易。价格也不便宜,盗版年代和 vb 盛行的时候,感觉非常好,但现在看起来就很鸡肋了,性能不上不下,价格也不便宜。
- 名字不一样,收费情况不一样
- 华为,小米,苹果手机之间有什么区别?
- 看从哪个角度说,从对应的项目说,数据的吞吐量来说 oracle 远比前两者大,要求也较高,但前两者可以通一些手段同样能达到同样的效果,对应用到这种数据库的项目自然比较大,但国内很多公司过与自认大项目,用上 oracle 反而被丢失了灵活性!另一个就是价格问题了,维护人员配备问题!
- 用最贵的 oracle 就对了