在面试时突然有人问你:MySQL和Oracle有什么不同?您将如何回答?事实上,面试者提问的时候主要是想看看你对数据库的了解和熟练程度,什么情况下用mysql,什么情况下使用Oracle,各有哪些优点和缺点!以下小编带大家一起分析这个问题的解决方法!
1.Oracle是大型数据库,而Mysql是中小型数据库,Oracle拥有40%的市场份额,Mysql仅占20%左右,同时Mysql开源,Oracle价格昂贵。
2.Oracle支持大并发、高访问,是OLTP的最佳工具。
3.安装所用的空间差异也很大,Mysql安装之后才152M,而Oracle大约是3G,而且Oracle在使用时占用了特别大的内存空间和其他机器性能。
4.Oracle也与Mysql操作不同。
①主关键字Mysql通常使用自动增长类型,在创建表时,只要指定表的主键是自动生成,在插入一条记录时,无需再为该记录指定主键值,Mysql会自动增长;Oracle没有自动增长类型,主要关键字常用的顺序,在插入一条记录时,向字段支付序列号的下一个值;除了ORM框架是以非ative主键生成策略为条件。
②在MYSQL中处理单引号时,字符串可以被双引号包裹,而ORACLE中的字符串只能用单引号封装起来。要替换单引号,在插入和修改字符串之前,必须用两个单引号替换其中一个。
③处理MYSQL翻页SQL语句的SQL语句是非常简单的,使用LIMIT开始位置,并记录数量;ORACLE处理翻页的SQL语句会很麻烦。每一个结果集只有一个ROWNUM字段指明其位置,且ROWNUM仅为<100,ROWNUM>80。
④处理长串字符串的ORACLE有其独特之处。在INSERT和UPDATE时,最大可以操作的字符串长度小于4000个单字节,如果您想插入一个较长的字符串,可以考虑使用CLOB类型,方法是从ORACLE中自带的DBMS_LOB程序包。在插入修改记录之前,必须进行非空和长度判断,不能为空的域值和超过长度的域值都要返回上一次操作。
⑤用空字符处理MYSQL的非空字段,ORACLE中定义了非空字段不允许有空的内容。按照MYSQL的NOTNULL定义ORACLE表结构,在输入数据时出错。所以在导数据时要对空字符进行判断,如果是NULL或者空字符,则需要将其转换为一个空白字符串。
⑥字符串的模糊比较MYSQL中like'%',字段名称为like'%',在ORACLE中还可以使用字段名称like'%'字符串%'但是这种方法不能使用索引,而且很慢。
⑦Oracle实现ANSIISQL中的大多数功能,例如,事务的隔离级别,传播特性等等,而Mysql在这方面相对薄弱。
MySQL和Oracle都是全球广泛应用的关系数据库管理系统。但由于它们各自的特点,在应用上存在较大差异。像数据库这样的开发人员经常使用,那么使用MySQL还是Oracle呢?这就需要先判断企业对数据库使用需求的优先顺序。您对MySQL和Oracle有什么不同了解吗?