面试题16

1. MySQL和Oracle的对比?

  1. MySQL与Oracle都是关系型数据库,应用于各种平台。MySQL开源是免费的;而Oracle则是收费的,并且价格非常高。
  2. MySQL的管理工具较少,在Linux下的管理工具的安装有时需要安装额外的包,有一定的复杂性;而Oracle有多重成熟命令行,图形界面,web管理工具,还有很多第三方的管理工具,管理及其方便高效,Oracle支持高并发,大访问量,是OLTP最好的工具。
  3. MySQL默认用户都是root,用户下可以创建好多数据库,每个数据库下都有好多表,一般情况下都是使用默认用户,不会创建多个用户;Oracle创建一个数据库,数据库下面有好多用户:sys,system,scott等,不同用户下有好多表,一般情况下只能创建一个数据库进行使用。
  4. MySQL:int,float,double等数值型,varchar,char字符型,date,datetime,time,year,timestamp等日期型。

Oracle:number(数值型),varchar2,varchar,char(字符型),date(日期型)等。

  1. MySQL一般使用自动增长类型,在创建表时只要指定表的主键,插入记录时,不需要指定该记录的主键值,MySQL将自动增长;Oracle没有自动增长类型,主键使用一般的序列,插入记录时将序列号的下一个值赋给该字段即可,只是ORM框架时只要native主键生成策略即可。
  2. MySQL里可以用双引号包起字符串;Oracle只可以用单引号包起字符串。
  3. MySQL是直接在SQL语句中使用limit就可以实现分页;Oracle则是需要用到伪劣ROWNUM和嵌套查询。
  4. MySQL默认是自动提交,可以修改为手动提交;Oracle默认不自动提交,需要手动提交,需要在写commit指令或点击commit按钮。
  5. MySQL在innodb存储引擎的夯机所的情况下才支持事务;Oracle则完全支持事务。
  6. MySQL是read commited的隔离级别;而Oracle是repeatable read  的隔离级别。同时二者都支持serializable串行化事务隔离级别,可以实现最高级别的读一致性。每个session提交后其他session才能看到提交的更改。
  7. MySQL以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他session无法更新此表的数据;Oracle使用行级锁,对资源锁定的粒度要小很多,只是锁定sql需要的资源,并且加锁是在数据库中的数据行上,不依赖于索引,所以Oracle对并发性的支持要好很多。
  8. MySQL逻辑备份时要锁定数据,才能保证备份的数据是一致的,影响业务的dml使用;Oracle逻辑备份时不锁定数据,而备份的数据是一致的。
  9. MySQL复制服务器配置很简单,但主库出问题时,从库可能丢失一定的数据,且需要手工切换从库到主库;Oracle既有堆或拉式的传统数据复制,也有dataguard的双机或多机容灾机制,主库出问题时,可以自动切换备库到主库,但配置管理较复杂。
  10. MySQL的诊断调优方法较少,主要有慢查询日志;Oracle有各种成熟的性能诊断调优工具,能实现很多自动分析,诊断功能。
  11. MySQL中日期转换用dateformat()函数;Oracle用to_date与to_char()两个函数。

2. 表关联有哪些方式?


3. 什么是关系型数据库?什么是非关系型数据库?

关系型数据库:指采用了关系模型来组织数据的数据库。

非关系型数据库:指非关系型的,分布式的,且一般不保证遵循ACID原则的数据存储系统。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值