Mysql与Oracle的区别

1.oracle是大型数据库而Mysql为中小型数据库,Oracle市场占有率有40%,而Mysql只有20%,同时Mysql是开源的而Oracle价格非常高。

2.Oracle支持大并发,大访问量,是OLTP(OLTP联机事物处理,我们常说的关系数据库)最好的工具。

3.安装所用的空间差别也很大,Mysql安装完后才152M,而Oracle有3G左右,且使用的时候Oracle占用特别的大的内存空间和其他机器性能。

4.Oracle和Mysql操作上的一些区别

   (1)主键:Mysql一般使用自动增长类型,在创建表时制定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;Oracle没有自动增长类型,主键一般使用的序列,插入记录时将序列号的下一个值付给该字段即可插;只是ORM框架是只要是native主键生成的策略即可。

   (2)单引号的处理:Mysql里可以用双引号包起字符串,oracle只可以使用单引号包起字符串,在插入和修改字符串前必须做好单引号的替换:把所有出现的一个单引号替换成两个单引号。

   (3)翻页的SQL语句的处理:Mysql处理翻页的SQL语句比较简单,用LIMIT开始位置,记录个数;Oracle处理翻页的SQL语句就比较繁琐了,每个结果集只有一个rowunm字段标明它的位置,并且只能用rowunm<100,不能用rowunm>80

    (4)长字符串的处理:长字符串的处理Oracle也有它特殊的地方,inset(插入)和update(更新)时最大操作的字符串长度小于等于4000个单字节,如果要插入更长的字符串,请考虑用CLOB类型,方法借用oracle里自带的DBMS_LOB程序包。插入修改记录前一定要进行非空和长度判断, 不能为空的字段值和超出长度字段值都应该提出警告,返回上次操作。

   (5)空字符的处理: Mysql的非空字段也有空的内容,oracle里定义了非空字段就不容许有空的内容。按MySQL的 not null来定义oracle表结构,导数据的时候会产生错误。因此导数据时要对空字符进行判断,如果为null或空字符,需要把它改成一个空格的字符串。

   (6)字符串的模糊比较:MySQL里用字段名,比如'%字符串%',oracle里也可以用字段名,比如'%字符串%',但这种方法不能使用索引,速度不快。

   (7)oracle实现了ANSII SQL中大部分功能,如事物的隔离级别、传播特性等,而MySQL在这方面还是比较弱。

  

posted @ 2017-03-08 15:38  溪>&筈  阅读(191)  评论(0)    收藏  举报