1、范例和本钱的区分
oracle数据库是一个对象关联数据库治理体系(ORDBMS),一个分量型数据库。它平常被称为Oracle RDBMS或简称为Oracle,是一个收费的数据库。
MySQL是一个开源的关联数据库治理体系(RDBMS),一个是轻量型数据库。它是世界上运用最多的RDBMS,作为服务器运转,供应对多个数据库的多用户接见。它是一个开源、免费的数据库。
2、存储上的区分
与Oracle比拟,MySQL没有表空间,角色治理,快照,同义词和包以及自动存储治理。
3、平安性上的区分
MySQL运用三个参数来考证用户,即用户名,暗码和位置;Oracle运用了许多平安功用,如用户名,暗码,配置文件,当地身份考证,外部身份考证,高等平安加强功用等。
4、对事件的支撑
MySQL在innodb存储引擎的行级锁的情况下才可支撑事件,而Oracle则完整支撑事件
5、机能诊断上的区分
MySQL的诊断调优要领较少,主要有慢查询日记。
Oracle有种种成熟的机能诊断调优东西,能完成许多自动剖析、诊断功用。比方awr、addm、sqltrace、tkproof等
6、治理东西上的区分
MySQL治理东西较少,在linux下的治理东西的装置偶然要装置分外的包(phpmyadmin, etc),有肯定复杂性。
Oracle有多种成熟的命令行、图形界面、web治理东西,另有许多第三方的治理东西,治理极为轻易高效。
7、并发性上的区分
MySQL以表级锁为主,对资本锁定的粒度很大,假如一个session对一个表加锁时候太长,会让其他session没法更新此表中的数据。虽然InnoDB引擎的表能够用行级锁,但这个行级锁的机制依赖于表的索引,假如表没有索引,或许sql语句没有运用索引,那末依然运用表级锁。
Oracle运用行级锁,对资本锁定的粒度要小许多,只是锁定sql须要的资本,而且加锁是在数据库中的数据行上,不依赖与索引。所以Oracle对并发性的支撑要好许多。
8、 保留数据的持久性
MySQL是在数据库更新或许重启,则会丧失数据,Oracle把提交的sql操纵线写入了在线联机日记文件中,坚持到了磁盘上,能够随时恢复
9、事件断绝级别上的区分
MySQL是read commited的断绝级别,而Oracle是repeatable read的断绝级别,同时两者都支撑serializable串行化事件断绝级别,能够完成第一流别的读一致性。每一个session提交后其他session才看到提交的变动。
Oracle经由过程在undo表空间中组织多版本数据块来完成读一致性,每一个session查询时,假如对应的数据块发生变化,Oracle会在undo表空间中为这个session组织它查询时的旧的数据块
MySQL没有相似Oracle的组织多版本数据块的机制,只支撑read commited的断绝级别。一个session读取数据时,其他session不能变动数据,但能够在表末了插进去数据。session更新数据时,要加上排它锁,其他session没法接见数据。
10、操纵上的一些区分
①主键
Mysql平常运用自动增进范例,在建立表时只需指定表的主键为auto_increment,插进去纪录时,不须要再指定该纪录的主键值,Mysql将自动增进;
Oracle没有自动增进范例,主键平常运用的序列,插进去纪录时将序列号的下一个值付给该字段即可;只是ORM框架是只需是native主键生成战略即可。
②单引号的处置惩罚
MYSQL里能够用双引号包起字符串,ORACLE里只能够用单引号包起字符串。在插进去和修正字符串前必需做单引号的替代:把一切涌现的一个单引号替代成两个单引号。
③翻页的SQL语句的处置惩罚
MYSQL处置惩罚翻页的SQL语句比较简单,用LIMIT 最先位置,纪录个数;ORACLE处置惩罚翻页的SQL语句就比较烦琐了。
④ 空字符的处置惩罚
MYSQL的非空字段也能够有空的内容,ORACLE里定义了非空字段就不允许有空的内容。
⑤字符串的隐约比较
MYSQL里用 字段名 like '%字符串%';ORACLE里也能够用 字段名 like '%字符串%' 但这类要领不能运用索引, 速率不快。
以上就是mysql和oracle的区分是什么的细致内容,更多请关注ki4网别的相干文章!