Oracle和MySQL差异比较
1、锁差异:
• Oracle锁加在数据块上
• InnoDB 是在索引上加锁,所以MySQL锁的粒度没有Oracle 精细。
2、导入导出:
• Oracle采用EXP /IMP ,EXPDP/IMPDP导入导出。
• MySQL采用mysqldump导出,导入可以采用管道或source。
3、commit:
• Oracle默认手动提交
• MySQL默认自动提交
4、SQL 缓存:MySQL只能缓存结果集,不能缓存SQL解析结果
5、数据库对象:
• Oracle将数据库对象编译存储,直接执行二进制码
• MySQL只存储代码,临时解析执行,所以MySQL触发器、存储过程、函数等对象创建时仅检查语法,不检查逻辑
6、事务:
• MySQL不是所有引擎都支持,建议优先使用InnoDB,相比其他引擎有更好的并发性
SQL写法差异
1、空字符串处理:
• 而Oracle 只有NULL的概念
• MySQL有空字符串 '' 和NULL,空串不等于NULL
2、结果集行数限制:
• Oracle使用rownum
• MySQL使用limit;
3、执行SQL:
• Oracle需要select func() from dual;
• MySQL可以直接select func();
4、修改字段类型或长度:
• Oracle:alter table tablename modify column ...;
• MySQL:alter table tablename modify (...);
5、复制数据:
• Oracle的as是必选,create table table1 as select * from table2;
• MySQL的as是可选,create table table1 select * from table2;
6、字符串处理:
• Oracle里用单引号包起字符串
• MySQL用双引号包起字符串
上一篇: oracle函数
推荐阅读
-
【SQL】Oracle和Mysql的分页、重复数据查询(limit、rownum、rowid)
-
MySQL和SQLServer的比较
-
MySQL两种表存储结构MyISAM和InnoDB的性能比较测试
-
Oracle8i和Microsoft SQL Server比较
-
Oracle10个分区和Mysql分区区别详解
-
Oracle In和exists not in和not exists的比较分析
-
MS Server和Oracle中对NULL处理的一些细节差异
-
SQL Server、Oracle和MySQL判断NULL的方法
-
oracle数据库删除数据Delete语句和Truncate语句的使用比较
-
DB2和 Oracle的并发控制(锁)的比较