【IT觀察】作為大數據時代的DBA,如何防止自己被淘汰
原創【51CTO.com原創稿件】
一句話對比三大數據庫軟件
這個世界上Oracle、SQL Server和MySQL三大數據庫軟件呈三足鼎立之勢,三者之間互有優缺點。網上能查到的內容我不再贅述,我把三者的優缺點對比總結成了三行文字:
Oracle:最貴,功能最多,支持平臺數量較多,速度中等,開發和運維比較簡便,最安全。
SQL Server:價格適中,功能比較豐富,支持平臺單一,速度最慢,開發和運維最簡便,比較安全。
MySQL:價格***廉,功能最少,支持平臺最多,速度最快,開發和運維最繁瑣,最不安全。
DBA選擇數據庫的方法
1、按性能和安全性來選擇
大型國企(銀行)、傳統企業上市公司(保險)的企業級應用對數據的完整性和安全性要求***,務必萬無一失,因此安全性***、功能最齊全的Oracle是傳統軟件的***。一般來說移動互聯網領域的公司對數據的完整性和安全性的敏感程度并不太高,所以互聯網行業的從業者可能有入行幾年還沒見過Oracle的,不過電商、金融類的互聯網產品對安全性要求同樣非常高的軟件也應該選擇Oracle作為數據庫。
如果公司是非移動互聯網行業的外企,那么一定要選擇Orcale,一來是洋老板普遍財大氣粗,二來是外企領導不像國內領導這么依賴對Windows系統友好的數據庫軟件。
2、按開發速度和運維難度來選擇
一般國企和事業單位以及傳統企業小公司的領導對軟件(一般情況下只有展示網站,連ERP系統都是買現成的)的要求就是價格低、快點出結果;加上國內的傳統的領導對Windows系統有說不清的迷戀;如此一來選擇SQL Server能同時滿足這三個要求,不過一般在這樣的單位不會存在DBA這個崗位——讓開發網站的程序員擔任DBA的一部分職責(其實也就只有備份、恢復、作業管理等幾樣)。
3、按價格和速度因素來選擇
移動互聯網時代的創業公司并不需要太糾結數據的萬無一失,但很在意成本,并且對數據訪問速度要求很高。因此資金不太充裕、為了給移動端提供API的服務器選擇MySQL是最明智的。事實上在互聯網領域MySQL的市場占有率是***的,大多數移動互聯網公司都用MySQL作為數據庫。
Oracle和SQL Server都是具備完善功能的數據庫生態系統,而MySQL僅是一個速度快、兼容性好的關系型數據庫軟件。但好在MySQL是開源的,同時追求速度快和數據安全的公司(移動互聯網領域的電商、金融公司)在資金充裕可以專人負責寫一個自己的MySQL系統,滿足系統的高可用和、高并發、高可擴的需求。
盡管MySQL的安全性一直為人所詬病,但經過多年改良,安全性已經超越了SQL Server。
DBA如何優化SQL
一個合格的DBA會明白無論選擇Oracle、MySQL還是SQL Server,SQL語句的優化都是數據庫優化的決定性因素,;而對數據庫工具本身的優化只不過是細枝末節,別人的配置方式也很容易從網上查到。
SQLite是Android系統上運行的數據庫軟件,性能與三大數據庫軟件不可同日而語,況且在Java語言的IDE里編寫SQL還沒有自動提示,有時候Android程序員對SQL語句優化的要求比DBA還高,在SQL上吃過不少虧的我總結了一些SQL語句優化方案,在此拋磚引玉,并非外行指導內行:
(1)在FROM語句中包含多個表的情況下,把條目最少的表放在前面。比如表一記錄某省人口數據,表二記錄全國失學兒童數據,那么查詢某省的失學兒童應該把表二放在前面。
(2)在WHERE語句中過濾掉最多數據的條件必須卸載前面。列如把性別寫在生肖前面的效率是生肖寫在性別前面的6倍。
(3)避免使用 SELECT * 因為這樣會查找所有的列名,耗費更多的時間。
(4)在SQL語句的WHERE和JOIN部分中用到的所有字段上,應該加上索引。
(5)移除不必要的表,可以減少很多數據庫的流程。
(6)盡管SQL是大小寫不敏感的語言,規范的SQL語句務必大寫。
DBA在大數據時代的發展前景
成為一個DBA表面上“僅”需要SQL語言和數據庫基礎管理的知識,所以造成了從業者良莠不齊,舉一個極端的例子,我有一個留級兩年的同學勉強拿到畢業證后就從事了DBA。然而理論跟實際相差甚遠,模擬的環境根本達不到線上要求的多用戶、高并發等壓力,僅在課堂上和自學是不能成為一個合格的DBA的,合格的DBA必須在企業中的實戰中走出來。一個合格的DBA必須掌握Linux基本命令和操作、數據庫備份和恢復、SQL優化、數據庫性能優化和至少一門腳本語言(如Python)。
移動互聯網時代雨后春筍般誕生的創業公司給人一種DBA的角色性變弱的錯覺,其實任何IT公司做大后都離不開DBA這個崗位。DBA的發展前景一直很不錯,尤其在大數據的時代里,原本就一直存在的性能問題和安全問題會更加突出,這意味著企業對DBA人才的需求會越來越旺盛,同時這也意味著DBA會面臨比以往更多樣化的困難和更嚴峻的挑戰。加上近年來的大規模集群和自動化運維,很多以前手工維護的工作現在都可以通過一系列自動工具來完成,盡管讓只會增刪改查的DBA看到了自己的可替代性,但也給對技術精益求精的DBA節約出了鉆研新技術和新知識的時間,使他們更加專注于解決所***的困難。
大數據時代是一個以數據驅動決策的時代,數據就是企業的生命,掌握公司命脈的DBA的崗位越來越重要,作用也越來越顯著,待遇也越來越豐厚,發展前景也越來越明朗。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】