从Oracle转到Mysql前需了解的50件事

1、 对子查询的优化表现不佳。
  2、 对复杂查询的处理较弱
  3、 查询优化器不够成熟
  4、 性能优化工具与度量信息不足
  5、 审计功能相对较弱
  6、 安全功能不成熟,甚至可以说很粗糙。没有用户组与角色的概念,没有回收权限的功能(仅仅可以授予权限)。当一个用户从不同的主机/网络以同样地用户名/密码登录之后,可能被当作完全不同的用户来处理。没有类似于Oracle的内置的加密功能。
  7、身份验证功能是完全内置的。不支持LDAP,Active Directory以及其它类似的外部身份验证功能。
  8、Mysql Cluster可能与你的想象有较大差异。
  9、存储过程与触发器的功能有限。
  10、垂直扩展性较弱。
  11、不支持MPP(大规模并行处理)。
  12、支持SMP(对称多处理器),但是如果每个处理器超过4或8个核(core)时,Mysql的扩展性表现较差。
  13、对于时间、日期、间隔等时间类型没有秒以下级别的存储类型。
  14、可用来编写存储过程、触发器、计划事件以及存储函数的语言功能较弱。
  15、没有基于回滚(roll-back)的恢复功能,只有前滚(roll-forward)的恢复功能。
  16、不支持快照功能。
  17、不支持数据库链(database link)。有一种叫做Federated的存储引擎可以作为一个中转将查询语句传递到远程服务器的一个表上,不过,它功能很粗糙并且漏洞很多。
  18、数据完整性检查非常薄弱,即使是基本的完整性约束,也往往不能执行。
  19、优化查询语句执行计划的优化器提示非常少。
  20、只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。
  21、大部分查询只能使用表上的单一索引;在某些情况下,会存在使用多个索引的查询,但是查询优化器通常会低估其成本,它们常常比表扫描还要慢。
  22、不支持位图索引(bitmap index)。每种存储引擎都支持不同类型的索引。大部分存储引擎都支持B-Tree索引。
  23、管理工具较少,功能也不够成熟。
  24、没有成熟能够令人满意的IDE工具与调试程序。可能不得不在文本编辑器中编写存储过程,并且通过往表(调试日志表)中插入记录的方式来做调试。
  25、每个表都可以使用一种不同的存储引擎。
  26、每个存储引擎在行为表现、特性以及功能上都可能有很大差异。
  27、大部分存储引擎都不支持外键。
  28、默认的存储引擎(MyISAM)不支持事务,并且很容易损坏。
  29、最先进最流行的存储引擎InnoDB由Oracle拥有。
  30、有些执行计划只支持特定的存储引擎。特定类型的Count查询,在这种存储引擎中执行很快,在另外一种存储引擎中可能会很慢。
  31、执行计划并不是全局共享的,,仅仅在连接内部是共享的。
  32、全文搜索功能有限, 只适用于非事务性存储引擎。 Ditto用于地理信息系统/空间类型和查询。
  33、没有资源控制。一个完全未经授权的用户可以毫不费力地耗尽服务器的所有内存并使其崩溃,或者可以耗尽所有CPU资源。
  34、没有集成商业智能(business intelligence), OLAP 多维数据集等软件包。
  35、没有与Grid Control类似的工具(http://solutions.mysql.com/go.php?id=1296&t=s)
  36、没有类似于RAC的功能。如果你问”如何使用Mysql来构造RAC”,只能说你问错了问题。
  37、不支持用户自定义类型或域(domain)。
  38、 每个查询支持的连接的数量最大为61。
  39、MySQL支持的SQL语法(ANSI SQL标准)的很小一部分。不支持递归查询、通用表表达式(Oracle的with 语句)或者窗口函数(分析函数)。支持部分类似于Merge或者类似特性的SQL语法扩展,不过相对于Oracle来讲功能非常简单。
  40、 不支持功能列(基于计算或者表达式的列,Oracle11g 开始支持计算列,以及早期版本就支持虚列(rownum,rowid))。
  41、不支持函数索引,只能在创建基于具体列的索引。
  42、不支持物化视图。
  43、不同的存储引擎之间,统计信息差别很大,并且所有的存储引擎支持的统计信息都只支持简单的基数(cardinality)与一定范围内的记录数(rows-in-a-range)。 换句话说,数据分布统计信息是有限的。更新统计信息的机制也不多。
  44、没有内置的负载均衡与故障切换机制。
  45、复制(Replication)功能是异步的,并且有很大的局限性。例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master。
  46、 Cluster并不如想象的那么完美。或许我已经提过这一点,但是这一点值得再说一遍。
  47、数据字典(INFORMATION_SCHEMA)功能很有限,并且访问速度很慢(在繁忙的系统上还很容易发生崩溃)。
  48、不支持在线的Alter Table操作。
  49、不支持Sequence。
  50、类似于ALTER TABLE或CREATE TABLE一类的操作都是非事务性的。它们会提交未提交的事务,并且不能回滚也不能做灾难恢复。Schame被保存在文件系统上,这一点与它使用的存储引擎无关。
我本人比较关心的几点:
  1、对子查询的优化表现不佳
  2、对复杂查询的处理较弱
  4、性能优化工具与度量信息不足
  12、支持SMP(对称多处理器),但是如果每个处理器超过4或8个核(core)时,Mysql的扩展性表现较差。
  15、没有基于回滚(roll-back)的恢复功能,只有前滚(roll-forward)的恢复功能。
  18、数据完整性检查非常薄弱,即使是基本的完整性约束,也往往不能执行。
  20、只有一种表连接类型:嵌套循环连接(nested-loop),不支持排序-合并连接(sort-merge join)与散列连接(hash join)。
  21、大部分查询只能使用表上的单一索引;在某些情况下,会存在使用多个索引的查询,但是查询优化器通常会低估其成本,它们常常比表扫描还要慢。
  26、每个存储引擎在行为表现、特性以及功能上都可能有很大差异。
  28、默认的存储引擎(MyISAM)不支持事务,并且很容易损坏。
  30、有些执行计划只支持特定的存储引擎。特定类型的Count查询,在这种存储引擎中执行很快,在另外一种存储引擎中可能会很慢。
  31、执行计划并不是全局共享的,仅仅在连接内部是共享的。
  33、没有资源控制。一个完全未经授权的用户可以毫不费力地耗尽服务器的所有内存并使其崩溃,或者可以耗尽所有CPU资源。
  45、复制(Replication)功能是异步的,并且有很大的局限性。例如,它是单线程的(single-threaded),因此一个处理能力更强的Slave的恢复速度也很难跟上处理能力相对较慢的Master。
  46、Cluster并不如想象的那么完美。或许我已经提过这一点,但是这一点值得再说一遍。
  47、数据字典(INFORMATION_SCHEMA)功能很有限,并且访问速度很慢(在繁忙的系统上还很容易发生崩溃)。
  48、不支持在线的Alter Table操作。
  50、类似于ALTER TABLE或CREATE TABLE一类的操作都是非事务性的。它们会提交未提交的事务,并且不能回滚也不能做灾难恢复。Schame被保存在文件系统上,这一点与它使用的存储引擎无关。

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-12-03 18:08:14

从Oracle转到Mysql前需了解的50件事的相关文章

开发移动应用前需规划的10件事

导语:大卫-塔克(David Tucker)是Universal Mind公司的首席设计师,作为公司驻苹果和Adobe的专家,他与Universal Mind的客户紧密合作,以研发出适用于当前各种新的开发平台.具有丰富用户体验的产品应用.日前他在国外科技博客Mashable上撰文,就移动应用开发问题指出了开发者需要先规划的十件事情. 站长之家(CHINAZ.com)3月2日编译:智能手机的普及,激起了大众对手机更多新功能.更多服务内容的渴望,为满足市场需求,移动应用开发者群体也在不断发展壮大,据

《众妙之门——JavaScript与jQuery技术精粹》——第1章 初学JavaScript 需知的七件事 1.1 缩略标记

第1章 初学JavaScript 需知的七件事 我很早以前就开始编写JavaScript代码,很高兴看到这种语言在今天所取得的成功,能成为这个成功故事中的一部分我很开心.关于JavaScript,我写过许多文章.章节以及一整本书,直到今天我仍在寻找新的东西.下文是一些我工作学习过程中激动时刻的记录,大家与其守株待兔,不如自己尝试去体会这种感受. 1.1 缩略标记 众妙之门--JavaScript与jQuery技术精粹 在创建对象和数组过程中可以使用缩略标记是我喜欢JavaScript的重要原因之

柳传志:创业前要想清楚三件事

柳传志:创业前要想清楚三件事 ■ 人物点击 日前,在成都举办的"天府创业论坛"上,联想控股董事局主席柳传志在与现场创业者沟通时表示,创业之前要想清楚三件事:1.所做的事能不能赚到钱,能赚多少钱.什么时候赚钱:2.行业门槛有多高,进入门槛是什么,自身的水平能否达到行业标准:3.考虑清楚竞争对手的状况,因为竞争关乎生存. 他指出,很多科研工作者带着技术成果出来创业,但对这个成果到底能不能赚钱,怎么转化成钱,没想明白."企业到底用什么样的盈利模式,怎么能赚钱这个事是第一要想的.&q

将mysql转换到oracle必须了解的50件事_oracle

另外他们列出的这些区别有些是蛮有意义的,有些可能由于他们本人的MySQL DBA的身份,对Oracle的理解有些偏差,有些则有凑数的嫌疑. 但是总体上结合Baron Schwartz的列表可以让大家大概地了解到Oracle与MySQL的共同之处与差别分别体现在哪些方面.. Robert Treat 1. 有些人说Oracle没有限制,实际上他们说得可能是Oracle不支持LIMIT语法.不过可以rownum虚列来实现,不过会更加麻烦. 2. Oracle不支持偏移(offset)语法. 3. O

谈谈新网站上线前要做的几件事

中介交易 SEO诊断 淘宝客 云主机 技术大厅 一个新网站在上线前,需要注意的事情还是有很多的,其中有几个要点要把握好,否则对网站前期的发展很不利.具体要注意什么,要怎么做,今天就讲一下自己的一些经验总结. 1.把握好网站的定位 一个新网站,尤其是个人的小网站,一定要注意网站定位,明确网站市场,不要好高骛远.目前,很多领域都已经有无数网站在做,没有实力的新网站很难在热门领域开辟市场,所以我们要另辟蹊径,抓住某个点,有针对性地提供服务,避免盲目. 2.购买好的域名主机 域名对一个网站也是相当重要的

老板解雇员工前必须做的5件事

作为经理,最困难的事情之一就是你必须解雇不合适的员工.一旦你做出决定,那么在你跟这位员工座谈之前,你需要做五件事.看公司里其它职位是否更适合他.在你的部门干得不好的员工,未必是个坏员工,也许只是不匹配.所以在你因为业绩不佳解雇他之前,看看周围是否能有适合他的其他职位.请注意,这并不是教你把坏员工甩给某个毫无准备的可怜经理,而是让你去寻找,是否有什么工作确实更适合他.把你遇到的问题坦诚告诉你的同行,也诚实介绍这家伙的优点.解雇前必须得到批准.我知道你是老板,也知道你在说什么,但除非你是这家公司最大

扩大企业规模前必须考虑的十件事

扩大你的公司规模可能存在什么风险?如果你正因扩展需求而考虑扩大公司,那你的做法无疑是值得肯定的.不过急于扩大公司规模可能会引起随之而来的严重问题,尤其是在人力资源和会计部门.我们咨询了10位青年企业家协会(YEC)里的企业家,让他们分享扩大公司的独家经验以及为新的一年准备大展身手的创业家提出最佳建议.1. 延伸公司区域作出承诺是你在扩大公司时面临的最大问题.作出扩大办公室.发展科技与增加雇员或者任何资产数目的承诺都可能会放缓你的速度并让银行账户大出血.延伸雇员区域是个很不错的选项.在Staff.

向云服务进发前要搞清楚六件事

向云过渡前,数据中心用户真正应该关心的问题是什么?面对不同的服务需求,数据中心应该寻找什么样的云技术进行改造?决定云计算数据中心效率.能耗.管理等问题的关键技术又有哪些?透过中国本土数据中心的云实践,我们一起来寻找这些问题的答案. "过去一年是激动人心的一年,云计算的发展和价值就像当年电冰箱.电视机面市后,电能所发挥的作用一样."在今年召开的中国云计算大会上,面对中国云服务的快速变化,阿里巴巴集团首席技术官王坚曾发出这样的感慨. 2013年,中国云计算产业已进入成长期,基于云计算的由点

后期优化 SEO及SEM企业网站需考虑的几件事

也许你现在还在思考:我的企业是否需要做网站.那么请你阅读我的另一篇关于<SEO及网络营销人员从业标准>之后再继续阅读一下的内容,相信您会了 解的更多,如果您认为我需要建立一个网站,那么请您继续阅读,并注意我所说的网站建设之前需要考虑的要点(相信这也是作为企业负责人的您最关心的问题) 今天有客户向我咨询关于SEO及网站排名的事项[在此不透漏其姓名,本文章为长春seo (www.92info.net):仙人球原创发布于A5希望转载请注明个人网站:www.92info.net 长春SEO],在分析了