作者 | 韓鋒
我曾長期從事ERP、電子政務類軟件的開發工作,作為數據庫的深度使用者,接觸到大量數據庫,如FoxPro、SQLServer、Oracle、Informix……在實踐過程中,對這一領域也愈發感興趣,并最終選擇從事數據庫相關工作。我曾長期擔任多家公司DBA、數據庫架構師,參與過很多項目的數據庫設計、開發、優化工作,并在這一過程中積累了不少經驗。
在多年的工作中,我發現數據庫領域存在一些現象。
現象一,開發人員将數據庫視為“黑盒子”。開發人員不關心、不重視數據庫,也不了解SQL語句的執行情況、數據庫的運行機制,甚至因為引入很多ORM工具,導緻開發人員不了解數據庫是如何完成請求并獲得數據的,優化自然無從談起。
現象二,SQL優化隻是DBA的事情。在很多設計、開發、測試人員的眼中,SQL優化隻是DBA的事情,他們不需要去關心。反映到具體工作中,他們缺乏相應的優化意識,隻注重功能的實現而忽略了相應的執行成本。最終的結果往往就是代碼質量不高,軟件上線後問題多。
現象三,盲目優化。有些公司很重視SQL優化工作,但又缺乏必要的技術投入。經常見到這樣的開發規範—所有WHERE條件字段都必須加上索引,結果就是數據庫被“過分”優化,适得其反。
現象四,SQL優化很簡單。有些人認為SQL優化很簡單,甚至覺得SQL優化就是加索引的事!我就曾遇到因為索引過多導緻執行性能低的案例。
現象五,硬件技術發展很快,不用再計較SQL優化。硬件技術近年來發展迅速,使得服務器的處理能力有了極大的提升。但我們要清醒地看到,SQL優化才是問題的根本解決之道。
現象六,開發人員想提高SQL語句質量卻無從下手。有些開發人員認識到了SQL語句質量的重要性,想要提高卻無從下手。一方面,他們本身不具備數據庫的專業知識;另一方面,SQL編程本身也有其特殊性,與其他常用開發語言有較大差異。正是這些因素,導緻開發人員想要提高SQL語句質量卻困難重重。
現象七,重運行維護,輕開發優化和架構設計。大多公司意識到了數據庫的重要性,但往往隻重視運維而忽視了前期的架構設計、開發優化。我們經常會看到一個項目中,公司會花大筆費用購買昂貴的硬件、備份軟件等,卻不舍得購買與數據庫優化、SQL審計相關的軟件。此外,随着自動化運維的逐步推廣以及數據庫雲服務的逐漸成熟,傳統意義的數據庫運維工作必然會逐步萎縮,取而代之的則是數據庫的設計、開發乃至整體架構開發。這也是DBA未來發展的一個方向。
現象八,資料繁多,卻無從選擇。Oracle數據庫在國内流行多年,該領域的書也非常多,但涉及優化書的相對較少,特别是局限在SQL語句優化範疇的。近年來,我也發現了幾本不錯的書,但普遍存在技術偏深、可操作性不強的問題,對于廣大數據庫開發的初學者或者有一定經驗但急需提高的從業者不太适用。
上述種種現象促使我有了将多年的經驗彙集成冊、編寫出版的想法。一方面是能夠幫助有相關需求的人,另一方面也是對自己多年的工作進行總結。《數據庫高效優化:架構、規範與SQL技巧》已于今年7月出版上市。最後,希望這本書能夠引導開發人員、DBA在SQL語句的編寫優化上能有進一步提高。
CSDN聯合機械工業出版社華章公司特邀到了韓鋒老師,他将帶着他的新書《數據庫高效優化:架構、規範與SQL技巧》,在8月30日19:30,在【悅讀時間 遇見代碼】直播欄目中與大家分享如何多角度了解數據庫運行狀況,以及如何系統性解決數據庫優化瓶頸。掃描海報二維碼進入直播群,直播間5折購買電子書!直播地址:
直播主題:從被動到主動,換個角度看DB
直播時間:8月30日(周日) 19:30-20:30
主講人:韓鋒
講師介紹:
騰訊雲TVP
CCIA(中國計算機行業協會)常務理事
前Oracle ACE
dbaplus社群聯合創始人
ACMUG、ACOUG、ODF主席團成員、專家組成員
著有《SQL優化最佳實踐》《數據庫高效優化:架構、規範與SQL技巧》
直播内容:
如何多角度了解數據庫運行狀況?
如何系統性解決數據庫優化瓶頸?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!