怎么学好数据库是一个比较大题目,数据库不仅仅是写SQL那么简单,即使知道了SQL怎么写,还需要很清楚的知道这条SQL他大概扫描了多少数据,返回多少数据,是否需要创建索引。  
至于SQL优化是一个比较专业的技术活,但是可以通过学习是可以掌握的,你可以把一条sql从执行不出来优化到瞬间完成执行,这个过程的成就感是信心满满的。  
学习的方法可以有以下一些过程:  
1、自己查资料,包括书本,在线文档,google,别人的总结等等,试图自己解决
2、多做实验,证明自己的想法以及判断
3、如果实在不行,再去论坛问,或者问朋友
4、如果问题解决了,把该问题的整个解决方法记录下来,以备后来的需要
5、多关注别人的问题,或许以后自己就遇到了,并总是试图去多帮助别人
6、习惯从多个方面去考虑问题,并且养成良好的总结习惯  
下面是一些国内顶级数据库专家学习数据库的经验分享给大家:  
http://www.eygle.com/archives/2005/08/ecinieoracleouo.html  
其实学习任何东西都是一样,没有太多的捷径可走,必须打好了坚实的基础,才有可以在进一步学习中得到快速提高。  
王国维在他的《人间词话》中曾经概括了为学的三种境界,我在这里套用一下:  
古今之成大事业、大学问者,罔不经过三种之境界。
"昨夜西风凋碧树。独上高楼,望尽天涯路。"此第一境界也。
"衣带渐宽终不悔,为伊消得人憔悴。"此第二境界也。
"众里寻他千百度,蓦然回首,那人却在灯火阑珊处。"此第三境界也。
学习Oracle,这也是你必须经历的三种境界。  
第一层境界是说,学习的路是漫漫的,你必须做好充分的思想准备,如果半途而废还不如不要开始。  
这里,注意一个"尽"字,在开始学习的过程中,你必须充分阅读Oracle的基础文档,概念手册、管理手册、备份恢复手册等(这些你都可以在http://tahiti.oracle.com 上找到);OCP认证的教材也值得仔细阅读。打好基础之后你才具备了进一步提升的能力,万丈高楼都是由地而起。  
第二层境界是说,尽管经历挫折、打击、灰心、沮丧,也都要坚持不放弃,具备了基础知识之后,你可以对自己感兴趣或者工作中遇到的问题进行深入的思考,由浅入深从来都不是轻而易举的,甚至很多时候你会感到自己停滞不前了,但是不要动摇,学习及理解上的突破也需要时间。  
第三次境界是说,经历了那么多努力以后,你会发现,那苦苦思考的问题,那百思不得其解的算法原理,原来答案就在手边,你的思路豁然开朗,宛如拨云见月。这个时候,学习对你来说,不再是个难题,也许是种享受,也许成为艺术。  
所以如果你想问我如何速成,那我是没有答案的。  
不经一番寒彻骨,哪得梅花扑鼻香。  
当然这三种境界在实际中也许是交叉的,在不断的学习中,不断有蓦然回首的收获。  
我自己在学习的过程中,经常是采用"由点及面法"。  
当遇到一个问题后,一定是深入下去,穷究根本,这样你会发现,一个简单的问题也必定会带起一大片的知识点,如果你能对很多问题进行深入思考和研究,那么在深处,你会发现,这些面逐渐接合,慢慢的延伸到oracle的所有层面,逐渐的你就能融会贯通。这时候,你会主动的去尝试全面学习Oracle,扫除你的知识盲点,学习已经成为一种需要。  
由实践触发的学习才最有针对性,才更能让你深入的理解书本上的知识,正所谓:"纸上得来终觉浅,绝知此事要躬行"。实践的经验于我们是至为宝贵的。  
如果说有,那么这,就是我的捷径。  
想想自己,经常是"每有所获,便欣然忘食",兴趣才是我们最好的老师。  
Oracle的优化是一门学问,也是一门艺术,理解透彻了,你会知道,优化不过是在各种条件之下做出的均衡与折中。  
内存、外存;CPU、IO…对这一切你都需要有充分的认识和相当的了解,管理数据库所需要的知识并不单纯。  
作为一个数据库管理人员,你需要做的就是能够根据自己的知识以及经验在各种复杂情况下做出快速正确的判断。当问题出现时,你需要知道使用怎样的手段发现问题的根本;找到问题之后,你需要运用你的知识找到解决问题的方法。  
这当然并不容易,举重若轻还是举轻若重,取决于你具备怎样的基础以及经验积累。  

网络上,Howard J. Rogers最近创造了一个新词组:Voodoo Tuning,用以形容那些没有及时更新自己的知识技能的所谓的Oracle技术专家。由于知识的陈旧或者理解的肤浅,他们提供的很多调整
建议错误的、容易使人误解的,甚至是荒诞的。他们提供的某些建议在有些情况下也许是正确的,如果你愿意回到Oracle5版或者6版的年代;但是这些建议在Oracle7.0,8.0 或者 Oracle8i以后往往是完全错误的。  
后来基于类似问题触发了互联网内Oracle顶级高手的一系列深入讨论,TOM、Jonathan Lewis、HJR等人都参与其中,在我的网站上(www.eygle.com )上对这些内容及相关链接作了简要介绍,有兴趣的可以参考。  
HJR给我们提了很好的一个提示:对你所需要调整的内容,你必须具有充分的认识,否则你做出的判断就有可能是错误的。  
这也是我想给自己和大家的一个建议:学习和研究Oracle,严谨和认真必不可少。  
当然你还需要勤奋,我所熟悉的在Oracle领域有所成就的技术人员,他们共同的特点就是勤奋。  
如果你觉得掌握的东西没有别人多,那么也许就是因为,你不如别人勤奋。  
要是你觉得这一切过于复杂了,那我还有一句简单的话送给大家:不积跬步,无以至千里。学习正是在逐渐积累过程中的提高。  
现在Itpub给我们提供了很好的交流场所,很多问题都可以在这里找到答案,互相讨论,互相学习。这是我们的幸运,我也因此非常感谢这个网络时代。  
参考书籍:如果是一个新人可以先买一些基本的入门书籍,比如MySQL:《深入浅出MySQL——数据库开发、优化与管理维护》,在进阶一点的就是《高性能MySQL(第3版)》  
oracle的参考书籍:http://www.eygle.com/archives/2006/08/oracle_fundbook_recommand.html  
最后建议不要在数据库中使用外键,让应用程序来保证。

发表评论

电子邮件地址不会被公开。 必填项已用*标注