데이터 베이스 MySQL 튜토리얼 我的数据库学习“曲线”

我的数据库学习“曲线”

Jun 07, 2016 pm 03:30 PM
작가 박사 공부하다 데이터 베이스 소개

作者简介: 牛新庄博士,研究方向为数据仓库和数据挖掘。是 IBM 官方资深培训讲师(培训 DB2,AIX,MQ,WebSphere 和 CICS )。 2002 年获 IBM 杰出软件专家奖, 2006 年获 首届中国杰出数据库工程师奖 、 2006 年 IT168 技术卓越奖 。是中信银行、山东农信、广

作者简介:

      牛新庄博士,研究方向为数据仓库和数据挖掘。是IBM官方资深培训讲师(培训DB2,AIX,MQ,WebSphereCICS)。2002年获IBM杰出软件专家奖,2006年获首届中国杰出数据库工程师奖“2006IT168技术卓越奖。是中信银行、山东农信、广东农信等公司资深技术顾问,中国建设银行总行特聘资深技术专家。拥有OCPAIXDB2HP-UXMQCICSWebSphere等二十多项国际认证。著有《Oracle数据库开发讲座——Oracle9i JdeveloperJ2EE实务应用》、《DB2应用开发实战指导》、《循序渐进DB2-系统管理、运行维护与应用案例》、《深入解析DB2-高级管理、内部体系结构与诊断案例》和《DB2性能调整与优化》等书。

选定发展方向

  1999年,我在开始读研时就给自己确定了以后的发展方向。

  当时有两个方向:网络,数据库技术。因为在2000年之时,网络大热,市场上拥有CCNPCCIE证书的人特别牛。所以我当时也考下了CCNP证书,但后来发现网络方向涉及很多硬件层面的东西,这些都对厂商的依赖性太强,个人发挥空间不大。而我喜欢钻研,所以慢慢开始转向专攻数据库技术。

  在认准数据库这个方向后,我开始深入学习数据库理论方面的知识。当时,人大王珊教授的《数据库系统原理教程》一书,我读了几十遍。在学习数据库理论的同时,我开始接触并深入学习DB2Oracle,并从1999年开始使用DB2 V5.2。那时,市场上关于DB2方面的技术书籍几乎没有,互联网也不像现在这么发达。因为我的导师做一个课题需要用到DB2数据库,但是我只能依靠查看DB2随机文档来学习。那时,我还自己兼职,通过帮别人做些小软件赚钱,外加课题稿费,以支付考OCP认证和DB2认证的费用。

  到现在为止,我一直认为考认证是一个很好的学习动力。因为考试费用不菲,如果不想浪费钱只能拼命看书。我在读研的2000年就通过了OCP 8i认证,后来又陆续通过DB2 V5.2认证。这些认证极大地增强了我的自信。同时,在帮助导师用PBDelphi等编程工具做应用开发时,我有意识地增强对SQL的学习,这对我后来的性能调优工作非常有帮助。

  这里我想说的是,做好一个时期的人生规划非常重要。我们首先要有一个明确的努力方向和规划,然后有意识的往这个方向努力。这种积极主动的学习要比被动学习效率高很多。

第一次做培训

  “机遇偏爱于有准备的头脑”,这句话虽是老生常谈,却是人生真谛。记得2000年底,我在网上看到一个帖子说需要一个人去安装DB2数据库,差旅报销,每天500元,我喜出望外。因为这项工作需要有DB2认证才能去,而我那时DB2高级系统管理和应用开发的认证都有,所以很快就通过了对方的审核。但是当我到客户现场时才发现,不是安装DB2而是要给客户讲课,当时我就傻眼了,因为讲课需要的知识远比安装配置数据库要难得多,更何况我之前根本没有讲过课。没办法,压力也是动力,只能前一天夜里看教材备课到凌晨5点。短短睡了两个小时后,8点半去讲课。四天讲课下来,我总共休息了12个小时。还好自己毕竟有DB2应用开发经验和DB2认证做基础,总算勉强应付了过去。只是没想到的是,这次并不算顺利的培训,竟是我未来几年培训生涯的开始。

将培训当学习的动力

  经过第一次讲课后,我看到了自己的差距,知道仅有认证是不够的。客户的很多问题,书本上没有答案,需要自己在实践经验上做努力。另外,讲课前讲师需要把一些原理、概念性的东西弄清楚,也需要对数据库进行深入学习。

  后来,IBM培训部通过一些渠道知道我能讲DB2且拥有相关证书,就找我讲授DB2系列课程。所以,从2001年开始,我就经常作为IBM官方讲师讲授DB2系列的所有课程。我自认为讲课是一个很好的学习过程,因为课前要深入了解概念,对于自己的理论深入学习有很大帮助。同时,课堂上学员的实际操作问题也会强迫自己做更深入的研究。

  我对培训有这样的认识:学员听你讲三个小时,要远远胜过自己看3小时的书。如果把一堂课的内容比喻成一杯水,那老师至少应该提前储备一桶水。所以,在讲课之前,我精心准备实验,深入和学员交流。我讲课从不照本宣科,而是自己准备了很多教材外比较实用的知识来扩展教材内容。同时争取上课过程中把一些概念用浅显易懂的例子来讲解。要想做到这些,首先自己必须对这个概念有深刻的理解才行,这一切都在客观上促进了自己的学习。

  随着培训的增多,有部分客户开始找我做实际的调优工作。记得我第一次去为客户现场调优是2001年,去大连大通证券解决锁等待问题。客户环境用的是AIXCICS。当时虽然问题解决了,但自己心里还是比较虚,因为对AIXCICS不了解,万一是这两个方面有问题,自己就没办法搞定了;这让我认识到一个复杂系统的调整往往需要具备多方面的知识。这件事之后,我在网上买了一个140IBM工作站小机,自己安装AIX并开始学习。

数据库学习Tips

  根据我对数据库的理解,目前市场上虽然有OracleDB2InformixSybaseSQL Server数据库,但Informix数据库已经被IBM收购,而Sybase数据库在技术和市场上正走向没落,占据市场主要份额的就是OracleDB2SQL Server数据库。SQL Server数据库非常好,但是很遗憾的是只能在Windows平台使用。所以如果你深入研究SQL Server数据库,我只能说获取高薪的概率稍低,而且坦白的说,使用SQL Sever数据库的企业一般是中小企业居多。而国内做Oracle数据库的人太多,如果你想在Oracle领域出人头地,难度极大。但是,做DB2数据库的人反而不太多,物以稀为贵。况且,DB2数据库广泛应用在银行、电信、制造行业、零售行业、保险行业等“高薪”领域中,所以我强烈建议学习DB2数据库,做IBM技术一般获取高薪的概率相对会大一些。我们的时间精力是有限的,所以必须选择好方向然后努力为之。除了SQL Server,这几个数据库我都在使用,我个人感觉除了功能外,对于运行稳定而言,相对于Oracle不太稳定的优化器,DB2无疑是最稳定的,它的优化器无比强大。如果能在锁方面再有更先进的技术,那么DB2将是完美的。

  这期间,我一边学习,一边通过了AIX的全部认证。记得非常清楚的是,为了做HA的实验,我花费了很大工夫。因为那时小型机不像今天这么普及,无法搞到7133阵列。后来我又学习了CICSWebSphereMQ存储。就这样,在我培训的过程中,发现自己哪方面薄弱并且感觉这个方向有前途,我就会开始学习。不过,那时我的技术主要还是围绕IBM产品为主。由于自己对培训比较用心且颇受客户好评,找我做培训的国内培训机构开始变多。这个期间我自己的技术水平也增长很快。

  200211月,我参加了首届 “IBM DeveloperWorksLive! China 2002”大会,并获得IBM首次在国内评选的“杰出软件技术专家”奖,当时在6名获奖者中名列第2。这个奖项客观上对我在客户群的拓展方面起到很大帮助。找我解决问题的人更多了,所以20022003年也成了我技术提升最快的两年。

  这两年内,我陆续学习了HP-UXWebSphereMQ并通过认证。我自己的感觉是,如果你把一门技术研究得非常深、非常透,由于触类旁通的缘故,再去学习另一门技术时就很轻松。所以,我在学完AIX再去学习HP-UX时,感觉非常轻松。同样,在学习ORACLEDB2后再去学习Informix也同样很容易。通过这种纵向的深入和横向的比较,各种产品的所长所短也会非常清楚,自己的技术视野无意间更加全面化。而且通过对一个产品的深入,你往往能够发现这个产品的缺点和需要改进的地方。就拿DB2来说,每次版本更新的新特性,在新版本未上市前我就可以猜得差不多了。这主要有三个原因:一是我贴近真实用户,了解他们的真正需求;二是自己一直在用且不断总结思考;三是这些特性别的数据库有,而DB2没有,那在下个版本就会增加。所以相对来说,我自身对新版本的新特性学习就非常轻松了。就DB2而言,我拥有DB2 V5.2 V7.1V8.1DB2 V9的全部认证,而且我应该是国内第一个把DB2 V8认证全部通过的人,当然,这其中也有巧合的成分。

  重要的一点是:学习过程中,要不断地把实践和理论融合,知其然更知其所以然,这样提升就会快很多。

现场救援“赶场”记

  20042005年是我最忙碌的两年,那时候找我讲课的培训机构和需要性能调优的客户非常多,基本上整天在天上飞。培训机构找我讲课常常需要提前一个月预约。那两年内,除了过年几天,其他时间都是在做培训和诊断、调优,足迹遍及国内主要城市。我自己基本上是国内六大银行开发中心和数据中心培训的指定讲师,并为北京银信科技、山东农信、广东农信,交行大集中IBP等项目做数据库技术顾问。

  那时的我年轻、精力充沛。记得最刺激的一次是20049月的一天,上午9点为上海移动IT部门做AIX动态逻辑分区(DLPAR)培训,结束时是17点。之后,立刻坐出租车前往扬州,于20点到达扬州供电局并协助他们进行电力负荷控制系统项目上线,一直奋战到凌晨3点半。接着,又连夜乘出租车赶往上海,在凌晨6点到达酒店。休息两小时后,8点出发,准时出现在上海移动培训现场。那时我对报酬不太在意,想的主要是用心积累技术经验和客户资源。在我看来,能够不断通过实践让自己成长是第一要义。而且,去的客户现场越多,处理的问题就越多,也就越多地发现自己的不足,然后再拼命学习,不断积累、总结和思考,进入了一个良性循环。

  至今我仍然怀念那段充实、紧张而充满激情的光辉岁月。2004年和2005年,一方面因为以独立咨询顾问的个人身份无法出具发票;另一方面,项目越做越大,尤其是很多银行的数据库架构和维护项目涉及合同金额也越来越大,需要签订正式公司合同。于是,我就分别在上海、北京注册了公司。当然这些年我并非都是一帆风顺,也犯过一些重大错误,例如:我曾经在200251日把海南美兰机场的数据库调死,导致机场航班信息管理系统瘫痪。早期也曾经因为调整某证券系统宕机而影响股民交易,这些都对客户造成了影响,但这些都是成长必须要走的路。经过这两次事件后,我自己也思考、总结了很多,在之后的调优工作中我基本上再没有犯过错误。

我的秘诀:学习、积累、规划

  20068月我获得“2006年中国首届杰出数据库工程师”称号,算是对我多年学习数据库的一个总结。自2007年开始,我专注于做一些大客户的运维工作,并相应减少了培训次数。2008年,我被建设银行以年薪217万聘请为资深技术专家来维护OracleInformix数据库。就做技术而言,以一己之力能挣到年薪几百万常常令我感到自豪,也让我感受到技术的魅力,觉得自己多年来对技术的钻研得到了认可。

  之所以讲述我的技术之路,主要目的是给大家一些参考,尽可能多地去了解社会的需求,有意识给自己制定人生规划。我自己认为,多年来能取得这样的成绩,勤奋、努力和坚持一直是我最看重的。因为有了这些,才不至于当机遇光顾时,你却不知所措。

  现在很多年轻人,恰恰缺少的就是这样的忘我与痴迷,在我熟悉的数据库技术领域,很多年轻人越来越早地将注意力集中在薪水和职位上,这是很不明智的行为。其实,往往那些将诸如高薪与职位忘怀的人反而能更快地取得成功。“不经一番寒彻骨,安得梅花扑鼻香?”这样的道理人人都懂,可能够真正去实践的人却并不多。结合我的学习经验与感悟,我总结有16字要诀:去除浮躁,认真学习,不断积累,寻找机遇。

  最后,我用这句话与大家共勉:古之成大事者,不唯有超世之才,亦唯有坚韧不拔之志也!

 

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Go 언어는 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 어떻게 구현합니까? Go 언어는 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 어떻게 구현합니까? Mar 27, 2024 pm 09:39 PM

Go 언어는 효율적이고 간결하며 배우기 쉬운 프로그래밍 언어입니다. 동시 프로그래밍과 네트워크 프로그래밍의 장점 때문에 개발자들이 선호합니다. 실제 개발에서 데이터베이스 작업은 필수적인 부분입니다. 이 기사에서는 Go 언어를 사용하여 데이터베이스 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. Go 언어에서는 일반적으로 사용되는 SQL 패키지, Gorm 등과 같은 타사 라이브러리를 사용하여 데이터베이스를 운영합니다. 여기서는 sql 패키지를 예로 들어 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. MySQL 데이터베이스를 사용하고 있다고 가정합니다.

PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 PHP에서 MySQLi를 사용하여 데이터베이스 연결을 설정하는 방법에 대한 자세한 튜토리얼 Jun 04, 2024 pm 01:42 PM

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

Hibernate는 어떻게 다형성 매핑을 구현합니까? Hibernate는 어떻게 다형성 매핑을 구현합니까? Apr 17, 2024 pm 12:09 PM

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. Jul 18, 2024 am 05:48 AM

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

HTML이 데이터베이스를 읽는 방법에 대한 심층 분석 HTML이 데이터베이스를 읽는 방법에 대한 심층 분석 Apr 09, 2024 pm 12:36 PM

HTML은 데이터베이스를 직접 읽을 수 없지만 JavaScript 및 AJAX를 통해 읽을 수 있습니다. 단계에는 데이터베이스 연결 설정, 쿼리 보내기, 응답 처리 및 페이지 업데이트가 포함됩니다. 이 기사에서는 JavaScript, AJAX 및 PHP를 사용하여 MySQL 데이터베이스에서 데이터를 읽는 실제 예제를 제공하고 쿼리 결과를 HTML 페이지에 동적으로 표시하는 방법을 보여줍니다. 이 예제에서는 XMLHttpRequest를 사용하여 데이터베이스 연결을 설정하고 쿼리를 보내고 응답을 처리함으로써 페이지 요소에 데이터를 채우고 데이터베이스를 읽는 HTML 기능을 실현합니다.

PHP를 사용하여 데이터베이스에서 중국어 왜곡 문자를 처리하기 위한 팁과 사례 PHP를 사용하여 데이터베이스에서 중국어 왜곡 문자를 처리하기 위한 팁과 사례 Mar 27, 2024 pm 05:21 PM

PHP는 웹사이트 개발에 널리 사용되는 백엔드 프로그래밍 언어로, 강력한 데이터베이스 운영 기능을 갖추고 있으며 MySQL과 같은 데이터베이스와 상호 작용하는 데 자주 사용됩니다. 그러나 한자 인코딩의 복잡성으로 인해 데이터베이스에서 잘못된 한자를 처리할 때 문제가 자주 발생합니다. 이 기사에서는 잘못된 문자의 일반적인 원인, 솔루션 및 특정 코드 예제를 포함하여 데이터베이스에서 중국어 잘못된 문자를 처리하기 위한 PHP의 기술과 사례를 소개합니다. 문자가 왜곡되는 일반적인 이유는 잘못된 데이터베이스 문자 집합 설정 때문입니다. 데이터베이스를 생성할 때 utf8 또는 u와 같은 올바른 문자 집합을 선택해야 합니다.

Go WebSocket은 데이터베이스와 어떻게 통합됩니까? Go WebSocket은 데이터베이스와 어떻게 통합됩니까? Jun 05, 2024 pm 03:18 PM

GoWebSocket을 데이터베이스와 통합하는 방법: 데이터베이스 연결 설정: 데이터베이스/sql 패키지를 사용하여 데이터베이스에 연결합니다. WebSocket 메시지를 데이터베이스에 저장: INSERT 문을 사용하여 데이터베이스에 메시지를 삽입합니다. 데이터베이스에서 WebSocket 메시지 검색: SELECT 문을 사용하여 데이터베이스에서 메시지를 검색합니다.

PHP에서 데이터베이스 연결 오류를 처리하는 방법 PHP에서 데이터베이스 연결 오류를 처리하는 방법 Jun 05, 2024 pm 02:16 PM

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

See all articles