资源描述:
《mysql与oracle的50个区别》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Mysql与Oracle的50个区别1.有些人说Oracle没有限制,实际上他们说得可能是Oracle不支持LIMIT语法.不过可以rownum虚列来实现,不过会更加麻烦. 2.Oracle不支持偏移(offset)语法. 3.Oracle的复制功能可能比MySQL更加健壮,不过也更加难以配置. 4.对于多个Master类型的系统,大部分用户都希望你使用更加复杂也更加昂贵的OracleRAC(虽然可能NDB更加健壮). 5.Oracle的分区功能非常健壮,但是它不是内置的,并需要专门为此付费(分区功
2、能是在EnterpriseEdition里面是内置的). 6.在Linux/Unix上,Oracle并不象Mysql那么方便,很多Linux/Unix发行版默认就会自带Mysql.(我对这一点的理解与翻译可能都有偏差) 7.INSERT…ONDUPLICATEKEYUPDATE语法将不再可用,不过你需要学习更加复杂(但是符合SQL标准)的MERGE语法. 8.Oracle的ROLE架构与MySQL有很大差异,无法再使用root角色来完整所有工作.(不过Sys用户的权限仍然与root相差无几,只是为了安
3、全着想,不建议这么使用了). 9.Role帐户与特定的Schema联系在一起(反之也一样),类似于MySQL数据库中的Database概念.(Role并不完全与Schema联系在一起,系统有一些固定的role,这些Role包含部分已经定义好的权限集(privilegeset),也可以再自定义部分新的role). 10.事实上,丢弃一切已知的关于连接访问的设置吧,Oracle使用一套全新的系统来处理连接访问. 11.支持全文搜索,不过语法完全不同. 12.Oracle的文档非常丰富,不过,如果需要Or
4、acle的专业服务,你需要拥有Metalink的访问权限. 13.在非数据库社区很难找到相关的支持信息(例如,PHP论坛或者网站开发者的网志) 14.自增功能可以通过Trigger与sequence对象来实现. 15.大量日常熟悉的SHOW命令将不再可用,想要获取系统信息,需要你学习Oracle的数据字典(或信息Schema),深入一点的还需要学习Oracle动态性能. 16.MySQL为信息Schema添加了多个非标准的扩展,在Oracle中将很难找到这些信息. 17.为了管理好生产系统与非生产
5、系统的的转入转出,需要你深入理解Oracle的授权规则. 18.大体上讲,Oracle的数值类型更加简单,如果你确实需要类似于MySQL的多粒度的数值类型,就需要你自己来实现它,或者通过制定不同的精度(Number(n,x))来实现. 19.在Oracle中,表可以做到无限制的增长,但是大部分情况下,都建议通过表空间(tablespace)来对此作细粒度的管理. 20.Oracle不支持ALTERTABLEADDCOLUMNBEFORE
6、AFTER,也就是不支持自己制定字段的位置.(我们这边之前有部分
7、应用对字段顺序有严格地要求,不过,从理论上讲,这是业务设计的问题,主要是其大部分情况下都是使用select*或者inserttablevalues来处理数据,而不是在select,insert中指定具体需要处理的字段名列表). 21.如果你习惯于通过图形界面(GUI)来管理数据库,你一定会喜欢上Oracle,但是如果你倾向于使用类似与Mysql命令行的客户端,你可能会对sql*plus这个客户端工具感到失望(需要一个习惯的过程,sql*plus还是蛮好用的). 22.Oracle的数据校验比Mysql更
8、加严格,依赖于MySQL的模糊规则可能会导致应用无法运行.MySQL接受”0000-00-00″来作为日期类型的值就是个典型的例子. 23.虽然Oracle的PL/SQL功能更强,但是它不支持标准的PSM语言来编写存储过程,因此你可能不得不学习它的非标准的语法. 24.Oracle不支持ENUM数据类型,只能通过使用基于文本的check约束或者创建外键关联表来实现. 25.Mysql的一些更加神秘的表类型(例如,blackhole,csv),在Oracle中找不到相对应的功能.(不清楚blockhol
9、e是何种类型,不过Oracle的外部表(externaltable)确实是支持csv格式的,在11g版本中还支持对此文件的压缩/加密以及其他处理). 26.Oracle中的GroupBy语句必须是确定的,它需要selectlist中出现的所有列都必须包含在groupby从句中. 27.Oracle的exp命令输出的dmp文件无法象Mysql的转储文件一样可以手工修改. 28.Oracle的底层实现有较大变化