WOT吳炳錫:奠定MYSQL江湖地位的開發注意事項
原創MYSQL對于大多數IT從業者來說并不是一個陌生的詞匯,早在十幾年前隨著互聯網SNS的興起,MySQL數據庫就開始***風騷,直至今日,它依舊是市場占有率***的關系數據庫。
隨著不斷地發展壯大,業界開始越來越重視MYSQL數據庫,現在看來不只是互聯網企業在用MYSQL數據庫,金融企業也在用MYSQL數據庫,一些傳統企業也加入了MYSQL數據庫使用的陣營中,基本上所有數據庫的相關場景里都能看到MYSQL的影子。
那么問題來了,究竟是什么原因使得MYSQL的出鏡率如此之高?關于這個問題,WOT2016互聯網運維與開發者峰會特邀講師、知數堂培訓創始人吳炳錫將基于MYSQL開發注意事項的角度來為我們進行講解。
吳炳錫,知數堂培訓創始人,中國CMUG核心組織者,10年+專職MySQL DBA,熟悉MySQL高可用方案與多機房架構設計及運維,擁有豐富的自動化平臺開發及實踐經驗。
為不同的行業提供不同的MYSQL應用場景
吳炳錫老師談到,不同行業的業務有不同的特點,選擇好一個適合自己行業的MYSQL應用場景至關重要。
- 互聯網行業
速度一直都是互聯網發展的***要義,互聯網行業所使用的數據庫特點簡要概括就是一個字:快!響應速度快,性能高。
- 金融行業
金融行業更加注重數據的穩定和安全,對于一致性的要求是眾多行業中***的。選擇集群,數據庫配置里的安全選項以及對事物的控制上都與其他行業有很大區別。
- 傳統行業
相比較速度和安全,傳統企業更加注重業務的處理,業務完成的整體地位要高于性能。
為不同的企業選擇不同的存儲引擎
和應用場景相類似,存儲引擎也應該按照行業的特點來進行選擇。吳炳錫老師就常用的MYSQL存儲引擎進行了分析。
- MyISAM
MyISAM是最傳統的MYSQL存儲引擎,但從MySQL5.5版本以后,官方就開始不進行特別維護了,這個引擎現在基本上已經可以作廢了。吳炳錫老師強烈建議還在使用這款存儲引擎的同志們盡快棄暗投明,選擇新的存儲引擎來替代它。
- Innodb
Innodb是現在比較新的引擎,也是吳炳錫老師重點推薦的一款存儲引擎。Innodb有兩個不同的版本,一個是Innobase,一個是Innodb Plugin。現在用的MYSQL5.5和5.6兩個版本的都是基于Innodb Plugin的,性能較之從前提高了兩倍以上,是做常規業務的不二之選。
- 其他
另外還有可以提供高速寫入功能的TokuDB引擎,在數據庫里面做繁雜統計分析工作的Inforbright引擎等等眾多存儲引擎可供我們選擇。
MYSQL優化的“三減一加”
用戶集中訪問算得上是互聯網領域的“高發病”,面對高并發環境,吳炳錫老師提出了:三減一加的政策。減少數據訪問、減少網絡傳輸、減少CPU開銷和增加資源。
高效索引設計的“軍規”
設計高效索引
- 查詢,更新,刪除where條件中必須有索引,處理行數不能超過1w
- 若查詢條件中不包含索引的最左列, 無法使用索引
- 對于范圍查詢, 只能利用索引的最左列
- 對于order by A語句,在A上建立索引, 可以避免排序
- 對于group by A語句,在A上建立索引, 可以避免排序
- 對于多列排序, 需要所有所有列排序方向一致, 才能利用索引。
寫在***
吳炳錫老師表示MySQL現在在業界內出現了很多的分支,有官方版本還有一些其他版本,每一個版本都有其獨到之處,作為一名資深的MYSQL傳教士,他希望將來的業界能夠用更開放的心態將所有新的特性合并到一起,讓每一個下一版本變得更加優秀,讓更多人從中受益!