翼度科技»论坛 编程开发 mysql 查看内容

Oracle和MySQL的区别

10

主题

10

帖子

30

积分

新手上路

Rank: 1

积分
30
刚进公司接触到了Oracle,记录一下他们的区别,面试的时候也有问到过,而且上来就是千万级别的数据调优,嘻嘻,我只是一个3年java。题外话,甚至有一些公司会问我java跟C、python的区别,以及具体区别的例子,然后我如果回答上来了,他们会告诉我,这边只做后端而且只用java,笑嘻了
就本人最近的使用和了解,整理了一下:
基本区别、大小写敏感、事务、时间日期、分页、常用字段类型
基本区别

数据库类型:

Oracle是对象关系数据库管理系统(ORDBMS => 基于对象模型,存储数据及其方法,数据存储在对象中,用于存储复杂的数据)
MySQL是开源的关系数据库管理系统(RDBMS => 基于关系模型, 存储数据,数据存储在实体里面,用于处理比较简单的数据)
默认端口和用户名:

Oracle默认端口:1521 默认用户:system
MySQL默认端口:3306 默认用户:root
安全:

Oracle使用了许多安全功能(本地身份验证,外部身份验证,高级安全增强等)
MySQL使用三个参数来验证用户,即用户名,密码和位置
性能:

MySQL在读取和写入方面性能通常比Oracle高
并发:

Oracle支持大并发访问量,是OLTP(联机事务处理 => 事务性非常高的系统,一般都是高可用的在线系统。比如银行、电商)最好的工具
MySQL并发小,面对大访问量可以做分表分库优化
临时表:

Oracle默认所有会话内可见(可设置当前会话内或事务内可见),创建后需要显式删除。
MySQL只在当前会话可见,一旦会话关闭就自动删除。
大小写敏感

Oracle默认是大写,在双引号""下,大小写敏感
MySQL默认是小写,大小写不敏感
事务

Oracle默认不自动提交,需要用户手动提交

提交命令:
BEGIN:事务块开始的标志(要么全部执行成功,要么全部失败回滚)
COMMIT:提交事务(对数据库的修改是可见的)
ROLLBACK:取消尚未提交的事务,将数据库恢复到事务开始之前的状态
SAVEPOINT:在事务中创建一个保存点,在事务执行过程中可以回滚到该保存点
SET TRANSACTION:设置事务的属性(事务的隔离级别、读写权限等)
MySQL中innoDB支持事务,默认自动提交(关闭事务提交命令 => set AutoCommit = 0)

提交命令:
START TRANSACTION:开始事务
COMMIT:手动提交
时间日期

Oracle使用 DATE 数据类型来存储日期和时间
  1. # 获取当前DATE
  2. SELECT SYSDATE
  3. # 格式 'yyyy-mm-dd hh24:mi:ss'
  4. SELECT TO_CHAR(createDate, 'yyyy-mm-dd hh24:mi:ss') FROM tableName;
复制代码
MySQL日期和时间通常使用 DATE,DATETIME,TIMESTAMP 数据类型存储
  1. # 获取当前时间戳
  2. select unix_timestamp()
  3. # 获取当前日期 格式 'YYYY-MM-DD'
  4. select date(now())
  5. # 获取当前日期时间,格式 'YYYY-MM-DD hh:mm:ss'
  6. select now()
复制代码
分页

Oracle
[code]# rownum从1开始select * from(select rownum rn, t.* from (select * from tableName order by id desc) t )where rn>=1 and rn
来自手机

举报 回复 使用道具