這其實都算不上最佳化
很多場景下,我覺得加索引這個其實都不能算是最佳化。
多年前聽到一個故事說一個DBA去了銀行,回來被一個銀行裡面稱之為大神。DBA的同事們說來給我們講講你怎麼最佳化的?該DBA說,實在說不出口啊。我僅僅是加了一個索引而已。而已,而已,而已。
我們在工作中有兩類最常見:一類是沒建立索引,比如我剛才說的。這種連開發都知道應該建立索引。一個幾億的表,一查就慢,開發自己也知道不建立索引說不過去了。都會主動的加對應的索引。
今天我還遇到一個問題,開發過來說建立個索引吧。我說你看看這個邏輯呢?開發看後直搖頭,這種沒有用。
那麼就是我們說的第二類。就是索引在那裡,但是select的時候沒用他。比如select * from t where a!='完成'。因為完成和未完成都不少。一般來說索引也建立在不去經常修改的列上。少初級開發會寫出上述的SQL,因為他理解是查詢未完成的就是查詢全部未完成的。語法上沒錯就行。至於是不是看看3年前未完成的要不要處理?他不管。如果問他要不要每次都看看一年前的未處理?智商正常的通常會想想說,應該不用,那麼就未處理的不用每次都去看。但是我們也不能排除這個世上就有一根筋的,他們會說要的,就是從最開始的那條做起。(這種是揹著牛頭不認賬的,可能心裡知道錯了,但是嘴上一定死扛)遇到後者這種,我的建議是不要繼續說下去了。不在一個世界中。
今天這個處理未完成的場景,我建議加個時間,每次檢檢視看一個月內有沒有未完成。其實這種每5分鐘的定時任務,每次看當天有沒有就足夠了。這樣改了以後效能大概提升了20倍左右。不過這種太過基礎,我依然覺得這種都不能算是最佳化。感覺是我大學剛畢業時候處理的一樣。到2022年了,這種問題其實在全國依然很普遍。
昨天晚上在TiDB的版主會上,大家群情激奮的討論最佳化器,都很專業。只是看到SQL時候,我覺得我都心疼最佳化器,這寫的實在是不講道理。論最佳化器而言大家公認Oracle做的最好,那麼沒有Oracle那麼強大最佳化器的資料庫我們就要好好的去寫一些質量高的SQL才行。SQL的質量就是決定了系統的質量。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2927394/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 月薪10-20K,其實阿里、百度等大廠都缺這類人才阿里
- React Ref 其實是這樣的React
- Event Loop 其實也就這點事OOP
- FMEA做不出來?其實是因為這些
- 爬蟲,其實本就是這麼簡單爬蟲
- 機器學習其實就這麼回事兒!機器學習
- 如何用Unity實現超多面渲染?其實只需這三招Unity
- 這是DDD建模最難的部分(其實很簡單)
- 2萬銷量就能活?其實這只是個分水嶺!
- 這樣看java記憶體模型其實很簡單Java記憶體模型
- 其實,這些APP更適合做蘋果企業簽名APP蘋果
- vuex其實超簡單,喝完這3步,還有3步Vue
- 【前端詞典】這些功能其實不需要 JS,CSS 就能搞定前端JSCSS
- 看上華科,這家公司與其成立聯合AI實驗室AI
- 兩年前端開發:三大框架都會了,感覺迷茫!網友:其實還是新手!前端框架
- 搶火車票這個事吧,其實我也能做!(python黑科技)Python
- 順豐慢其實並不是現實問題,做好這兩點可以輕鬆解決
- 注意別聽人忽悠!其實這4類人並不適合IT行業行業
- “動態規劃”這詞太嚇人,其實可以叫“狀態快取”動態規劃快取
- Promise 其實很簡單Promise
- EventLoop其實如此簡單OOP
- 我這節課都學了啥
- iOS這些小技巧你都知道嗎iOS
- 這些知名製藥跨國企業都實施了SAP系統
- 為什麼要這麼設計呢 但其實它只有一把鎖
- 其實這樣介紹專案經驗,會讓面試官更加中意你!面試
- DDoS其實不可怕,只要你學會了這些防禦DDoS的舉措
- 創業其實就是做生意創業
- 其實泛型很簡單泛型
- Linux其實非常好學Linux
- 快排其實很簡單
- 這些年,他們都35歲了
- 與其“抓耳撓腮”,不如get這些工具
- SpringBoot 如何實現非同步程式設計,老鳥們都這麼玩的!Spring Boot非同步程式設計
- 看過太多大廠面試題,其實考的無非是這 3 點能力面試題
- 這時商家其實可以藉助短視訊同城拓客工具擴大運營
- 這個SQL你會最佳化嗎?SQL
- 關係重疊?實體巢狀?曝光偏差?這個模型統統都搞得定!巢狀模型