关系型数据库(Oracle与MySQL优缺点、使用区别)
MySQL的特点
1、性能卓越,服务稳定,很少出现异常宕机;
2、开放源代码无版本制约,自主性及使用成本低;
3、历史悠久,社区和用户非常活跃,遇到问题及时寻求帮助;
4、软件体积小,安装使用简单且易于维护,维护成本低;品牌口碑效应;
5、支持多种OS,提供多种API接口,支持多种开发语言,对流行的PHP,Java很好的支持
MySQL的缺点
1、MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限才会发生改变;
2、MySQL的另一个主要的途径之一是缺乏标准的RI(Referential Integrity-RI)机制,RI限制的缺乏(在给定字段域上的一种固定的范围限制)可以通过大量的数据类型来补偿;
3、MySQL不支持热备份;
Oracle的特点
1、兼容性:Oracle产品采用标准SQL,并经过美国u构架标准技术所(NIST)测试,与IBM SQL/DS、DB2、INGRES、IDMS/R等兼容。
2、可移植性:Oracle的产品可运行于很宽范围的硬件与操作系统平台上。可以安装在多种 大、中、小型机上,可在多种操作系统下工作。
3、可联结性:Oracle能与多种通讯网络相连,支持各种协议。
4、高生产率:Oracle产品提供了多种开发工具,能极大地方使用户进行进一步的开发。
5、开放性:Oracle良好的兼容性、可移植性、可连接性和高生产率使Oracle RDBMS具有良好的开放性。
Oracle的缺点
1、对硬件要求很高;
2、价格比较昂贵;
3、管理维护麻烦一些;
4、操作比较复杂,需要技术含量高;
MySQL与Oracle的应用区别
1、主键的使用:
MySQL:一般使用自动增长类型,在创建表的时候只要指定表的主键为auto increment,插入记录时就不需要再为主键添加记录了,主键会自动增长;
Oracle:没有自动增长,主键一般使用序列,插入记录时将序列号的下一值付给该字段即可,只是ORM框架只是需要native主键生成策略即可。
2、长字符串的处理
长字符串的处理ORACLE也有它特殊的地方。INSERT和UPDATE时最大可操作的字符串长度小于等于4000个单字符,
如果要插入更长的字符串,请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包。插入修改记录前一定要做进行非空和长度判断,不能为空的字段值和超出长度值都应该提出警告,返回上次操作。
3、模糊查询的比较
MySQL:用字段名like%'字符串%'
Oracle:也可以用字段名like%'字符串%'但这种方法不能使用索引,速度不快,用字符串比较函数
isnert(字段名,‘字符串’)>0会得到更精确的查找结果
4、空字符串的比较:
MySQL的非空字段也有空的内容,Oracle里定义了非空字段就不容许有空的内容。按MySQL的not null来定义Oracle表结构。
导数据的时候就会产生错误。因此导数据时对空字符进行判断,如果为Null或空字符,需要把它改成一个空格的字符串。
5、单引号的处理
MySQL里可以用双引号包起字符串,Oracle里只可以用单引号包起字符串,在插入和修改字符串前必须做单引的替换;
把所有出现的一个单引号替换成两个单引号