歡迎訪問昆山寶鼎軟件有限公司網站! 設為首頁 | 網站地圖 | XML | RSS訂閱 | 寶鼎郵箱 | 后臺管理
?

新聞資訊

MENU

軟件開發知識

專訪周彥偉:十年技術老兵談為什么MySQL最流行及

點擊: 次  來源: 時間:2017-03-13

引用編者按:在老一代的數據庫老人中,周彥偉是其中的佼佼者,不僅著眼于自己的成長,還不斷致力于該領域的發展,成立了技術社區、組織技術沙龍活動等,造福了很多,如今又將有新書出爐,為技術人帶來全方位的福利,以下是CSDN對他的專訪,他總結了自己多年來的成長和他眼里的“DBA精神”:責任心、服務心、溝通心、學習心、進取心和分享心。
引用采訪:仲培藝;責編:錢曙光

周彥偉 去哪兒網擔任數據庫總監

CSDN:首先能否請您介紹一下自己、您的團隊以及您所關注的領域?
周彥偉:我是周彥偉,目前在去哪兒網擔任數據庫總監。在去哪兒網負責數據庫平臺的管理和維護工作。工作范圍包括MySQL、Redis、HBase平臺的架構設計、性能調優、日常運維以及自動化運維平臺設計。曾經擔任人人網(校內網)MySQL技術主管,負責數千規模的MySQL數據庫實例的運維管理。在這個領域內有近10年的工作經歷。

出于對于MySQL的興趣,在業余時間作為創始人之一組建了中國MySQL用戶組(ACMUG),并長期任ACMUG領導,領導和組織中國MySQL社區活動。在過去的幾年間,把中國MySQL用戶組社區從一個不起眼的小沙龍,做成了分會遍及全國,會員不計其數的大型社區,陸續在中國大陸的北京、上海、深圳、福州、廈門、成都、武漢、濟南以及臺北和香港等地開展了MySQL相關技術沙龍活動,影響了大部分中國MySQL從業者。

跟王竹峰、強昌金一起合著有《MySQL運維內參—— MySQL、Galera、Inception核心原理與最佳實踐》一書,目前正在出版社校對和排版,計劃2017年5月面世。

2016年初,基于我對中國MySQL技術和社區所做貢獻,Oracle授予了Oracle MySQL ACE Director 的榮譽。

CSDN:您曾談過人人網四余年,受益良多,那么是什么樣的契機讓您選擇來到去哪兒網,這個過程中是否有什么難忘的經歷可以和大家分享?
周彥偉:人人網是我MySQL職業的起點,在那里的確是受益良多,是人人網促進了我的成長,我對此非常感激。跟大數據、高并發的人人網業務相比較,去哪兒網的業務類型是以電子商務為主,大部分業務都是訂單、賬務之類,這類數據更敏感,對數據安全要求更高,對DBA的要求也更苛刻,挑戰也更大?;谧陨沓砷L的考慮,以及時任去哪兒網CTO吳永強先生的熱情邀請和充分信任,我在人人網工作四年多之后,忍痛離開,去尋找新的起點。在此,我也感謝去哪兒網,是這樣一個環境讓我更上層樓。

CSDN:您在MySQL領域苦心孤詣多年,這份執著的起源是什么呢,或者說是什么樣的機會讓您將目光投注到MySQL上的?
周彥偉:中國互聯網的興起大概是在90年代末,門戶網站和搜索引擎的興起,把中國一下子帶入了互聯社會。但真正的復雜邏輯型網站的繁榮,大概要在2006年之后了吧,那個時候開始,互聯網逐步深入到了垂直領域、社交領域、電商領域、金融領域。隨之而來的,就是這些復雜邏輯帶動了網站對關系數據庫的需求,特別是對OLTP的需求,MySQL成了解決這一需求痛點的金鑰匙。中國大部分互聯網公司都選擇MySQL數據庫來支撐自己的業務。

我從2007年開始進入互聯網工作,并開始接觸MySQL,親眼目睹了這一現象,并預測對MySQL人才的需求將會越來越大,這對個人的職業和發展是一個不可多得的良機,在加上我十分推崇MySQL的開源、開放、自由的思想,于是在做了5年的編程工作之后,毅然轉型到了MySQL。目前來看,這還算是個不壞的選擇。

CSDN:眾所周知,MySQL的目標是要做“最流行的數據庫”,您是覺得讓它在通往這一目標的道路上得以不斷前進的要素是什么,它有著怎樣的特性?
周彥偉:目前來看,如果把MySQL官方版加上它的主要分支Percona,MariaDB的話,MySQL應該已經實現了這個目標。為什么MySQL會那么成功?這是一個有意思的話題,也有很多人討論。原因可能很多,我之前在自己的公眾號(ID:formysql)里面寫過一篇文章《MySQL流行的原因》,現在看看還是適用的。引用如下:

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

MySQL流行的原因可以歸結為以下幾點:
  • 簡單
  • 盡管MySQL源碼的入門門檻很高,很多人不能深入其中,但是MySQL的使用還是非常簡單的,任何稍微有IT背景的技術人員都可以無師自通地參照文檔安裝運行和使用MySQL,這幾乎沒有什么門檻。同時,MySQL支持大部分ANSI SQL-92,略有經驗的使用者都能完成基本的操作需求。
  • 開源
  • 開源意味著安全和免費,代碼就擺在那里,無數的技術愛好者一起來審核程序,一起修補問題,這讓使用者非常的放心。同時,開源帶來了免費。從上世紀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就有了無限的活力和競爭力以保持其長盛不衰。
  • 支持
  • 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先生本人的認可,我們會繼續前行,為中國的開源數據庫做出貢獻。
    CSDN:都知道您在MySQL之外,對Redis和Oracle等數據庫也有很深入的研究,當初在眾多計算機分支中,是出于什么原因選擇從事數據庫行業的?
    周彥偉:在上面第三個問題已經聊到過,在過去這十年,是屬于MySQL的時代,并且我堅信這個時代還在不斷延續,并且人們對MySQL的依賴越來越強了。

    大膽預測一下,如果過去十年是互聯網的MySQL,那么接下來的十年,應該會是傳統企業的MySQL,讓我們拭目以待。

    CSDN:在您看來,一名優秀的DBA需要具備哪些素質,包括專業知識上方面,以及精神方面。而您初次涉足DBA行業又是什么樣的背景呢?
    周彥偉:我在自己的公眾號里面也曾經寫到過我所認可的“DBA精神”,同時在我們的新書《MySQL運維內參》“前言”里面又相信闡述了這個想法:

    DBA是什么?
  • 有點像SA,但在業務層面上比SA事兒多,主要是牽扯的人多,嬉笑怒罵,皆成文章。
  • 有點像DEV,但總是會有沖突,多數情況下發生在雙方對數據庫使用的看法和優化上。我們只好自己開發個Inception給DEV用。
  • 有點像PM,設計庫,優化表,處處都是藝術。
  • 有點像CTO,恩,你以為我說的是首席建表官? DBA是操著雞毛蒜皮的心啊。
  • 有點像出租司機,改個表,我一向不待見那種不等改完甩手就走的,等待是一種美德,善始善終方顯英雄本色。
  • 有點像救火隊員,網站掛了,可能跟DB沒關系,但DBA一定要出現;DB掛了,一定跟網站有關系,DBA一定也要出現。
  • 有點像銀行點鈔員,數據就是錢啊,只是都不是自己的,但職業道德最為重要。
  • 有點像養孩子,當爹又當媽,哪個實例伺候不好,都會出亂子。
  • DBA是服務型職業,服務好了,沒你啥事兒;服務不好,事兒就大了。

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

    DBA精神是責任心的體現
    維護數據庫數據的安全和完整是管理員的首要責任。在管理數據庫的過程中,作為一個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精神永續下去,讓更多人受益,讓更多技術普及。

    CSDN:數據庫行業對知識的積累和不斷更新優化有著極高的要求,這里您能否結合經驗,和大家分享一下您覺得值得推薦的學習方法或策略?
    周彥偉:在我接觸MySQL的時候,苦于沒有太多的參考資料,我曾經大規模地閱讀官方文檔,這是一個最笨,但也是100%有效的學習方法。當然,到現在為止,隨著行業的發展,越來越多的人會把自己的經驗和心得分享出來,學習途徑跟10年前比要多太多了,各種書籍,博客,自媒體數不勝數。這里也給自己打個小廣告,歡迎關注我的個人公眾號:MySQL運維內參(ID:formysql)和我們正在簽名預售的新書《MySQL運維內參——MySQL、Galera、Inception核心原理與最佳實踐》。

    有句詩云:紙上得來終覺淺,絕知此事要躬行。MySQL是運維型技術,要求極強的動手能力和操作經驗,所有的培訓班和書籍只能指明一個方向,提供一個參考,最重要的還是要自己動手,如此方能豐衣足食。

    CSDN:最后,能否請您分享一下對于MySQL未來發展的預期?
    周彥偉:我在自己的公眾號里面曾經寫過一篇《Galera的未來—Group Replication發布后的思考》,其實文章所提到的Galera和Group Replication均是MySQL未來發展的方向,這就是集群化。我也會在今年的若干技術大會上分享我對MySQL集群化的一些看法和嘗試,這包括MySQL NDB Cluster,MySQL Galera Cluster和MySQL InnoDB Cluster。在未來的若干年內,MySQL會一直引領數據庫發展潮流,并以集群化的解決方案為更大廣大的傳統企業服務。

    引用SDCC 2017?上海站將于2017年3月17-19日登陸申城,三大技術峰會和24位嘉賓,匯聚國內知名的互聯網公司CTO、架構師、技術總監,暢談運維、數據庫和架構的熱門話題和技術熱點,遇見精益運維發起人&優維科技CEO王津銀、MongoDB大中華區首席架構師唐建法和華為軟件API開放平臺架構師李林鋒等大牛。截止3月5日前門票八折優惠中,5人以上團購立減1500元,詳情點擊注冊參會。
    排列三305组选前后关系 江西多乐彩开奖结果 怎么看秒速快三走势图 2020时时彩平台 股市趋势技术分析在 吉林省快3走势 网上现金时时彩平台 1000百家乐体验金 福利彩票不能网上买了 怎么看股票指数 极速11选5大小规律官网