注冊用戶即可下載全站資源 關注Java幫幫微信公眾號
 

十年技術老兵談為什么MySQL最流行及DBA精神

4
發表時間:2018-11-19 14:17

從上世紀90年代后期開始,互聯網的熱潮開始席卷全球,也為MySQL的發展提供了廣闊的空間。特別是基于交互的社交,電子商務,以及金融互聯網的發展,對傳統的數據庫服務能力提出了挑戰。高并發,高性能,高可用,輕資源,易維護,易擴展的需求,促進了MySQL的長足發展。

MySQL流行的原因可以歸結為以下幾點:

簡單

日本韩国三级aⅴ在线观看盡管MySQL源碼的入門門檻很高,很多人不能深入其中,但是MySQL的使用還是非常簡單的,任何稍微有IT背景的技術人員都可以無師自通地參照文檔安裝運行和使用MySQL,這幾乎沒有什么門檻。同時,MySQL支持大部分ANSI SQL-92,略有經驗的使用者都能完成基本的操作需求。

開源

日本韩国三级aⅴ在线观看開源意味著安全和免費,代碼就擺在那里,無數的技術愛好者一起來審核程序,一起修補問題,這讓使用者非常的放心。同時,開源帶來了免費。從上世紀90年代末一直持續到現在,互聯網的興起并快速發展,對免費數據庫的需求非常迫切,免費,也讓規模化部署的需求成為可能。要知道很多大型互聯網公司的MySQL集群都是數以千記或者萬記的,如果是按照傳統的商業數據庫的收費模式,沒有人愿意承擔。免費,讓數據庫大規模使用成為可能,也提升了互聯網的交互式服務的質量。

復制

MySQL從3.23.15這個版本開始,支持了replication,可以幫助MySQL使用者搭建Master-Slave的架構。把數據準實時的從一個實例同步到另一個實例。這個時間是2000年之前。要知道,其他一些開源數據庫是在最近的幾年里才開始支持這樣的功能的,這對于數據庫使用者來說,不管是在線備份還是讀寫分離,或者負載均衡到多個讀庫,意義實在太大了。在2010年之前,一個Master,多個slave的部署情況隨處可見,我見過有12個slave的情形,可以設想,如果沒有replication功能,我們要用數據庫處理百萬甚至是億萬規模的查詢負載是非常困難的。

引擎

MySQL不同于其他多數數據庫之處是它對插件式存儲引擎的支持,這是一個開放的設計,有點兼容并包,海納百川的感覺。熟悉MySQL的人隨便就能報出幾種MySQL存儲引擎的名字,MyISAM,InnoDB,NDB,TokuDB,等等。而MySQL里最常用的,也是奠定了MySQL開源數據庫之王地位的InnoDB,并不是Monty或者他的伙伴們開發的。插件式存儲引擎的設計,讓InnoDB以及其他存儲引擎輕松接入到MySQL Server,集百家之長,這樣MySQL就有了無限的活力和競爭力以保持其長盛不衰。

支持

日本韩国三级aⅴ在线观看Monty說在早期MySQL剛剛推出的時候,他親自寫了30000封郵件來幫助人們使用MySQL。這樣持之以恒,不辭勞苦,不厭其煩的精神讓人贊嘆。我們自己也維護了一個開源數據庫項目InceptionSQL審核。在過去的一年多里,我們也碰到了很多很多的使用者提問的問題,這種感受,真的是只有經歷過才能體會其中的付出。

合作

MySQL在發布的早期,就廣泛的跟其他社區合作,PHP和Perl的開發者都很愿意去傳播MySQL的技術和新聞,很多Linux版本都會預裝MySQL。一度LAMP(Linux、Apace、MySQL、PhP)成為站長或者開發者的標配。MySQL在各種合作中逐步深入人心,遍地開花。

社區

社區對MySQL的貢獻功不可沒。MySQL流行的一個重要原因就是人們常說的社區力量強大。社區為MySQL貢獻了架構方案,運維工具,技術文檔,宣傳普及,乃至專業人才。放眼望去,不管是專業的數據庫服務團隊例如著名Percona,還是著名的技術型公司,例如google,facebook都在使用MySQL的過程中不斷的給MySQL貢獻新的功能和工具,幫助MySQL成熟和穩定。在國內,這幾年我們一直在組織ACMUG(中國MySQL/MariaDB用戶組,China MySQL/MariaDB User Group),它匯聚了中國最頂尖的MySQL及其周邊技術的人才,同時得到了騰訊,阿里巴巴等公司的同行的支持和積極參與,公司有競爭,然技術卻無界限,大家廣泛交流,互通有無,功能促進中國MySQL技術的傳播和進步。目前,ACMUG以及ACMUG所組織的技術交流活動得到了MySQL所屬的Oracle公司,MariaDB所屬的MariaDB基金會以及MySQL和MariaDB之父Monty先生本人的認可,我們會繼續前行,為中國的開源數據庫做出貢獻。


DBA是什么?

  1. 有點像SA,但在業務層面上比SA事兒多,主要是牽扯的人多,嬉笑怒罵,皆成文章。

  2. 有點像DEV,但總是會有沖突,多數情況下發生在雙方對數據庫使用的看法和優化上。我們只好自己開發個Inception給DEV用。

  3. 有點像PM,設計庫,優化表,處處都是藝術。

  4. 有點像CTO,恩,你以為我說的是首席建表官? DBA是操著雞毛蒜皮的心啊。

  5. 有點像出租司機,改個表,我一向不待見那種不等改完甩手就走的,等待是一種美德,善始善終方顯英雄本色。

  6. 有點像救火隊員,網站掛了,可能跟DB沒關系,但DBA一定要出現;DB掛了,一定跟網站有關系,DBA一定也要出現。

  7. 有點像銀行點鈔員,數據就是錢啊,只是都不是自己的,但職業道德最為重要。

  8. 有點像養孩子,當爹又當媽,哪個實例伺候不好,都會出亂子。

DBA是服務型職業,服務好了,沒你啥事兒;服務不好,事兒就大了。

DBA承載著一個重要的角色,有著特殊的職責和使命,一個優秀的DBA其實是非常難得的。DBA應該具備怎樣的能力呢?我曾經提出過“DBA精神”:責任心、服務心、溝通心、學習心、進取心和分享心。

DBA精神是責任心的體現
日本韩国三级aⅴ在线观看維護數據庫數據的安全和完整是管理員的首要責任。在管理數據庫的過程中,作為一個DBA,要把數據庫看做自己的財產、自己的兒女、自己身體的一部分。此種職責,需要你像呵護自己眼睛一樣去照顧你所維護的數據庫。時刻去想,有沒有做應該有的備份,有沒加應該有的監控,有沒有做必須的安全權限限制。一旦出問題,有沒有第一時間去分析和解決問題,這就像你的自己的眼睛,一旦出現紅腫病態,多少人會視而不見?

DBA精神是服務心的體現
現代互聯網對DB的需求,是需要支撐業務持續穩定的運行和源源不斷的變更,這要求DBA有7X24小時的服務精神。這是一個服務性職業,需要隨時隨地響應來自各方面的各種需求。其一,人的需求,業務要發展,DB就會有變更,只有DBA與開發人員緊密配合,才能順暢高效地完成工作。其二,事的需求,DB是個動態的系統,不斷的運轉就會不斷的面臨新問題,機器故障,磁盤報警,內存不足,CPU過載等等。這是個脆弱的系統,它不會對DBA的遲鈍有半點仁慈,一旦有問題,任性的宕機是必然的結果。其三,心的需求,DBA應該出自內心地主動去對DB做不斷的優化,這種優化,可以在結構上,可以在架構上,可以在業務邏輯上,關鍵之處在于,你有沒有心。說得通俗一點:“沒事找事兒”。

DBA精神是溝通心的體現
DBA的工作,不是封閉的科學研究和孤傲的英雄主義,不管是主動的優化,還是被動的接受任務,都是需要與人做不斷的溝通與交流。假如你不懂業務流程,不知道數據的來龍去脈,輕重緩急,那就談不上數據庫表的設計和優化。而數據庫的優化,往往最大的進展是來自對業務邏輯的優化。這需要運用良好的溝通心態和技巧,深入了解業務流程和架構。與人溝通,是DBA獲取知識和信息的主要途徑,需要做到能與人溝通和會與人溝通。生活工作中,人的個性是千差萬別的,面對形形色色的溝通對象,充分調動對方的積極性,進行愉快有效的交流也是DBA需要掌握的一門技術。

DBA精神是學習心的體現
DB在技術體系中是一個承上啟下的中間環節,它運行在物理硬件和操作系統之上,同時承載著上層各種各樣的業務邏輯的調用。對DB的運維和管理,不僅僅需要掌握數據庫自身的基礎知識,要保證這個系統的穩定和優化,就需要知己知彼,去了解它上下游的知識和特性。所以,一個優秀的DBA,需要了解你所使用的硬件,這包括磁盤的特性,網絡的布局,內存的使用,CPU的處理能力等等;需要了解DB所運行的操作系統的知識,它是怎么調度IO的,怎么管理內存的,怎么優化文件的;需要了解上層業務是怎么調用數據庫的,SQL怎么寫的,看懂了業務邏輯的程序才能明白有的SQL是不是多余,某些SQL是不是可以優化。我們看到在MySQL官方和MariaDB官方,都已經針對硬件開始在官方源碼的基礎上做自動優化了,同時MySQL官方也提供了自己的集成于業務端的高可用方案,這都是開源數據庫進步發展的必然結果。同時,由于開源數據庫的盛行,針對數據庫自身代碼的學習和研究,也逐漸成為優秀DBA的必修課了。

DBA精神是進取心的體現
隨時發現問題,分析問題,解決問題。通過問題現象,依賴自己的經驗和知識,同時探索未知的知識去解決現實的問題,在這個過程中,也是自己積累經驗和不斷成長的過程。相對而言,解決問題本身并不重要,重要的是在此過程中探求解決問題的方法和所獲取的經驗,DBA的職業優勢也在于此,同時,主動花費心思與精力去不斷追求問題的優解和技術的極致,也是DBA應盡的職責。

DBA精神是分享心的體現
這些年,我們一直在倡導做一件事情,那就是提倡DBA在開源社區持續做技術分享。我們做了ACMUG,全稱是 China MySQL User Group。A你可以認為是All,或者About,或者是Active,它代表了所有關心MySQL及其相關技術的積極參與分享活動的人。在過去的數年里,ACMUG已經組織了上百場技術分享,分享者都是工作在一線的DBA或者數據庫技術愛好者,通過參與這個活動,大家都切切實實的得到收益,個人在技術上也取得了巨大的進步。通過分享,大家學到了技術、開拓了視野、展開了思路,當然也交到了朋友。我們希望能通過這樣的活動,把DBA精神永續下去,讓更多人受益,讓更多技術普及。


支付寶贊助-Java幫幫社區
微信贊助-Java幫幫社區
Java幫幫公眾號生態

Java幫幫公眾號生態

總有一款適合你

Java幫幫-微信公眾號

Java幫幫-微信公眾號

將分享做到極致

Python幫幫-公眾號

Python幫幫-公眾號

人工智能,爬蟲,學習教程

大數據驛站-微信公眾號

大數據驛站-微信公眾號

一起在數據中成長

九點編程-公眾號

九點編程-公眾號

深夜九點學編程

程序員生活志-公眾號

程序員生活志-公眾號

互聯網,職場,程序員那些事兒

Java幫幫學習群生態

Java幫幫學習群生態

總有一款能幫到你

Java學習群

Java學習群

與大牛一起交流

大數據學習群

大數據學習群

在數據中成長

九點編程學習群

九點編程學習群

深夜九點學編程

python學習群

python學習群

人工智能,爬蟲

測試學習群

測試學習群

感受測試的魅力

Java幫幫生態承諾

Java幫幫生態承諾

一直堅守,不負重望

初心
勤儉
誠信
正義
分享
合作品牌 非盈利生態-優質內容分享傳播者
關于我們
友鏈申請
友鏈交換:加幫主QQ2524138991 留言即可 24小時內答復  
全站內容非商業用途,內容來源于網友,并遵循 許可,如有異議請聯系客服。
會員登錄
獲取驗證碼
登錄
登錄
我的資料
留言
回到頂部