仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 608|回复: 8
打印 上一主题 下一主题

[学习教程] 公布将数据从MySQL迁到Oracle的几点注重事项

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:12:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
”由于MySQL已经是一个运行了众多知名Web2.0网站的数据,包括Craigslist、Digg、Wikipedia和Google等,或许我们可以说每一个Web2.0公司实质上是一个使用MySQL数据库的公司。有良多使用项目,刚起步的时分用MySQL数据库基础上能完成各类功效需求,跟着使用用户的增加,数据量的增添,MySQL垂垂地呈现不胜重负的情形:毗连很慢乃至宕机,因而就有把数据从MySQL迁到Oracle的需求,使用程序也要响应做一些修正。自己总结出以下几点注重事项,但愿对人人有所匡助。

1.主动增加的数据范例处置MySQL有主动增加的数据范例,拔出纪录时不必操纵此字段,会主动取得数据值。Oracle没有主动增加的数据范例,必要创建一个主动增加的序列号,拔出纪录时要把序列号的下一个值赋于此字段。

CREATESEQUENCE序列号的称号(最好是表名序列号标志)INCREMENTBY1STARTWITH1MAXVALUE99999CYCLENOCACHE;个中最年夜的值按字段的长度来定,假如界说的主动增加的序列号NUMBER(6),最年夜值为999999INSERT语句拔出这个字段值为:序列号的称号.NEXTVAL

2.单引号的处置MySQL里能够用双引号包起字符串,Oracle里只能够用单引号包起字符串。在拔出和修正字符串前必需做单引号的交换:把一切呈现的一个单引号交换成两个单引号。

3.翻页的SQL语句的处置MySQL处置翻页的SQL语句对照复杂,用LIMIT入手下手地位,纪录个数;php里还能够用SEEK定位到了局集的地位。Oracle处置翻页的SQL语句就对照烦琐了。每一个了局集只要一个ROWNUM字段标明它的地位,而且只能用ROWNUM<100,不克不及用ROWNUM>80。以下是经由剖析后较好的两种Oracle翻页SQL语句(ID是独一关头字的字段名):

语句一:

SELECTID,[FIELD_NAME,...]FROMTABLE_NAMEWHERE
IDIN(SELECTIDFROM(SELECTROWNUMASNUMROW,
IDFROMTABLE_NAMEWHERE前提1ORDERBY前提2)
WHERENUMROW>80ANDNUMROW<100)ORDERBY前提3;

语句二:

SELECT*FROM((SELECTROWNUMASNUMROW,
c.*from(select[FIELD_NAME,...]
FROMTABLE_NAMEWHERE前提1ORDERBY前提2)c)
WHERENUMROW>80ANDNUMROW<100)ORDERBY前提3;

4.长字符串的处置长字符串的处置Oracle也有它特别的中央。INSERT和UPDATE时最年夜可操纵的字符串长度小于即是4000个单字节,假如要拔出更长的字符串,请思索字段用CLOB范例,办法借用Oracle里自带的DBMS_LOB程序包。拔出修正纪录前必定要做举行非空和长度判别,不克不及为空的字段值和超越长度字段值都应当提出告诫,前往前次操纵。

5.日期字段的处置MySQL日期字段分DATE和TIME两种,Oracle日期字段只要DATE,包括年代日时分秒信息,用以后数据库的体系工夫为SYSDATE,准确到秒,大概用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’)年-月-日24小时:分钟:秒的格局YYYY-MM-DDHH24:MI:SSTO_DATE()另有良多种日期格局,能够参看OracleDOC.日期型字段转换成字符串函数TO_CHAR(‘2001-08-01’,’YYYY-MM-DDHH24:MI:SS’)日期字段的数学运算公式有很年夜的分歧。MySQL找到离以后工夫7天用DATE_FIELD_NAME>SUBDATE((NOW(),INTERVAL7DAY)Oracle找到离以后工夫7天用DATE_FIELD_NAME>SYSDATE-7;

6.空字符的处置MySQL的非空字段也有空的内容,Oracle里界说了非空字段就不允许有空的内容。按MySQL的NOTNULL来界说Oracle表布局,导数据的时分会发生毛病。因而导数据时要对空字符举行判别,假如为NULL或空字符,必要把它改成一个空格的字符串。

7.字符串的含混对照MySQL里用字段名likeOracle里也能够用字段名like但这类办法不克不及利用索引,速率不快用字符串对照函数instr(字段名,字符串)>0会失掉更准确的查找了局8.程序和函数里,操纵数据库的事情完成后请注重了局集和指针的开释。
如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。
老尸 该用户已被删除
沙发
发表于 2015-1-18 18:34:43 | 只看该作者
如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。
再见西城 该用户已被删除
板凳
发表于 2015-1-27 05:44:14 | 只看该作者
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
简单生活 该用户已被删除
地板
发表于 2015-2-5 03:32:12 | 只看该作者
我个人认为就是孜孜不懈的学习
不帅 该用户已被删除
5#
发表于 2015-2-11 03:53:16 | 只看该作者
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
萌萌妈妈 该用户已被删除
6#
 楼主| 发表于 2015-3-1 21:25:04 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
爱飞 该用户已被删除
7#
发表于 2015-3-11 00:28:58 | 只看该作者
对于微软系列的东西除了一遍遍尝试还真没有太好的办法
乐观 该用户已被删除
8#
发表于 2015-3-17 17:08:43 | 只看该作者
多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。
山那边是海 该用户已被删除
9#
发表于 2015-3-24 15:36:20 | 只看该作者
外键的级联更能扩展可能大部分的同行在设计OLTP系统的时候都不愿意建立外键,都是通过程序来控制父子数据的完整性。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-6 08:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表