MySQL和Oracle 两个常用数据库区别

MySQL和Oracle 两个常用数据库区别

1. MySQL 为开源数据库,oracle 收费且费用还挺高。
2. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右。
3. Oracle支持大并发,大访问量,是OLTP( On-Line Transaction Processing联机事务处理系统 )最好的工具。
4. Oracle的内存占有量非常大,而mysql非常小 (152M :3G);并且使用的时候Oracle占用特别大的内存空间和其他机器性能,用的越多占的越多。
5. 操作区别
①主键区别:MySQL支持主键自增长,指定主键为auto increment,插入时会自增,Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可。
②引号区别: MYSQL里可以用双引号包起字符串,ORACLE里只可以用单引号包起字符串。在插入和修改字符串前必须做单引号的替换:把所有出现的一个单引号替换成两个单引号。
③分页区别:MySql数据库提供了分页的函数limit m,n。Oracle使用rownum字段表明位置,rownum是Oracle数据库中的一个特有关键字,返回的是一个数字代表记录的行号,rownum只能做<或者<=的条件查询。
④ 长字符串区别:MySQL中用Dynamic格式存储大数据,当数据页放不下时,MySQL会将大数据全部放在外部存储页,数据页只留指向外部存储页的指针,当一行中的数据不能在数据页中放下,需要申请外部存储页时,MySQL需要决定将哪一列的数据放到外部存储页,遵循的规则如下:
a.长度固定的字段不会被放到外部存储页(int、char(N)等);
b.长度小于20字节的字段不会被放到外部存储页。(假如放到外部存储页,不仅会单独占据16KB,还要额外的20字节指针,没有必要);
c.对于Compact和REDUNDANT格式的行数据,长度小于768字节的字段不会被放到外部存储页。(这个原因很显然,本来就不够768字节的前缀,总不能生搬硬凑吧);
d.当有多个大数据字段满足上面条件,需要被放到外部存储页时(比如一个7000字节,一个6000字节,需要选择一个字段放到外部存储页时),MySQL会优先选择大的字段放到外部存储页,因为这样可以最大限度的省下数据页的空间,使得更多的字段能够被放到数据页。
ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。
⑤空字符区别: MYSQL的非空字段也有空的内容,ORACLE里定义了非空字段就不容许有空的内容。按MYSQL的NOT NULL来定义ORACLE表结构, 导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为NULL或空字符,需要把它改成一个空格的字符串。
⑥提交区别:MySQL中命令默认commit,但是Oracle需要手动提交。
⑦字符串的模糊比较区别: MYSQL里用 字段名 like ‘%字符串%’,ORACLE里也可以用 字段名 like ‘%字符串%’ 但这种方法不能使用索引, 速度不快。
⑧大小写区别:MySQL在windows环境下大小写不敏感 在unix,linux环境下区分大小写,Oracle不区分。
⑨功能区别:Oracle实现了ANSII SQL中大部分功能,如,事务的隔离级别、传播特性等,Mysql对于事务默认是不支持的,只是有某些存储引擎中如:innodb可以支持;而Oracle对于事物是完全支持的。

常用数据库:myqsl 、oracle 、SQL Server 、DB2 、Redis

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值