關於使用數據庫的階段

今天還是在搗鼓RDS的各種主從複製,災備,各種實驗,一次次的提工單,估計光我提的工單就要耗阿里的半個工程師。

午飯的時候,我就在想一個問題,從聽說過數據庫,或狹義點只說MySQL,到真正能在線上業務中使用,要經歷幾個階段?

第零階段,在服務器上裝過MySQL,不用任何理解,其實看着百度搜出來的結果,會認字都能幹,照着一行行敲命令,萬一裝不上,再換一篇帖子照着做。很多人在這個階段停留了很長時間,幹什麼?就是反覆安裝(可能是作爲discuz,dedecms或者wordpress的一安裝中的一步),可能感覺就跟買了個Android手機反覆刷機一樣,我從不刷機,但很多開發同事樂此不疲。這個階段熟練之後,開始厭煩了,於是邁向瞭解數據庫的第一階段。

第一階段,買書,學SQL。這階段我經歷過,書都很厚,我到現在早都忘了書裏寫什麼了,這個階段總是以能夠實現出來非常特立獨行的查詢爲自豪,其實現在想想,SQL那麼多關鍵字有必要記麼?隨便舉個例子RAND(),線上誰敢用。還有那啥存儲過程,別說,我還真見過一套老的短信計費系統,整個都是拿存儲過程寫的,可現在的後臺服務誰這麼幹?不過這些學習還是有用的,至少到公司面試是有用的。

第二階段,開始跟後臺打交道了,這個時候開始關心數據庫的效率了,依舊是百度,最終發現捷徑就一條,加索引,能加多少加多少,不怕給每個關鍵字都加上,至於插入速度會不會受影響,佔用空間夠不夠統統不管,查出來再說。然後,打開慢查詢,一條條的看,那條慢了,改,在發現一條,再改……

第三階段,啥東西都往MySQL裏放,這東西終於撐不住了,於是開始拆表,不行,拆庫,橫向切分,縱向切分。然後開始讀寫分離,災備。一般這個時候也就知道數據庫有很多種,別死命在一根樹上吊死的道理了。

第四階段,只要穩定能不動就不動,不是懶,是知道怕了,效率的問題也不那麼關心了,因爲有問題的時候就說明用錯地方了。

當然後面還有無數的階段,比如去優化MySQL代碼啊,寫個數據庫啊,那就不是我這個非專職DBA該乾的事了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章