資料庫的大腦-最佳化器
可能這個比喻不是很恰當。但是不會差太多。前幾天和一個演算法美女博士談及她的專業,我說其實資料庫核心之一就是演算法。我在她面前班門弄斧的說了階乘和選擇度等。當然博士容忍了我的吹牛。其實我個人也這樣理解的,資料庫是數學和物理學的結合。一個SQL就是把高階語言翻譯成機器語言,最後在指定的地方讀寫值。如何讀寫其實很大程度取決於邏輯,我有時候看到一些待最佳化的SQL就是: 查一年資料可能是200萬(其實不大對吧)。 那麼如果一頁200行,那麼就是1萬頁。 有人一定強迫症要看看總頁數。(其實沒必要,請參考谷歌和百度)。也就是說返回這麼多,但是使用的人我想基本不會看1萬頁的,最多就看幾頁。 相當於做了滿漢全席,結果吃了兩口,全倒掉了。這是邏輯呀。有的時候為什麼SQL慢,邏輯錯了。
資料庫的心臟是最佳化器(依賴統計資訊我們先不表)我幾年前聽說MySQL和PG的最佳化器有很多種演算法。一個是25種一個是50種。(誰25,誰50。我忘了,說誰少,誰不高興。兩邊都有朋友不得罪人了)。然後我聽恩墨老師說Oracle有250種最佳化演算法。以上資料都來自於幾年前。現在具體不知道了。所以有人說為什麼Oracle快,你可能不知道多少滿頭白髮的數學教授在那裡研究著這些。
平時也在不少群裡看到,說某某國產太拉胯,Oracle、MySQL、PG上都能很快或者較快出結果的。結果在它上面出不來結果,甚至奔潰了。所以如果用有些提到的國產,就需要開發重寫所有邏輯,否則支援不了的。
以前有個清華的碩士和我說,他們在2000年初,全班都被新浪、搜狐整班入職。那時候全國最好的人來做高併發的入口網站。那時的開發還要求邏輯和演算法,現在只有大廠還堅持著這個優良的傳統。
“你別逼我,逼急了我什麼都做的出來。 ” “是嗎?,那你把這道數學題給做做?” 人被逼急了還真不是什麼都做的出來,起碼數學就不是。
有的資料庫比較好,其中一個方面就是這個。我看過有些看上去有點“噁心 ”的SQL,他還執行的這麼快。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2912087/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 支付寶工程師如何搞定關聯式資料庫的“大腦”——查詢最佳化器工程師資料庫
- 資料庫伺服器的NUMA最佳化問題資料庫伺服器
- Mysql資料庫大表最佳化方案和Mysql大表最佳化步驟MySql資料庫
- 解析MySQL資料庫效能最佳化的六大技巧MySql資料庫
- 最佳化MySQL資料庫效能的八大“妙手”(轉)MySql資料庫
- 程式正在成為我們大腦中的資料庫資料庫
- 頂級大廠Quora如何最佳化資料庫效能?資料庫
- 資料庫的最佳化和效率資料庫
- Jtti:如何最佳化大資料伺服器配置?Jtti大資料伺服器
- 【MySQL】資料庫最佳化MySql資料庫
- mysql資料庫最佳化MySql資料庫
- 資料庫系統概述之資料庫最佳化資料庫
- 紹Oracle資料庫的最佳化之資料庫磁碟I/OOracle資料庫
- 資料庫查詢和資料庫(MySQL)索引的最佳化建議資料庫MySql索引
- MySQL資料庫效能最佳化MySql資料庫
- mysql資料庫SQL最佳化MySql資料庫
- 大資料中的Java虛擬機器最佳化大資料Java虛擬機
- 大資料量資料查詢最佳化大資料
- Greenplum資料庫,分散式資料庫,大資料資料庫分散式大資料
- 大資料圖資料庫之TAO資料庫大資料資料庫
- 圖資料庫——大資料時代的高鐵資料庫大資料
- 使用記憶體資料庫可以最佳化伺服器效能記憶體資料庫伺服器
- 資料庫最佳化技巧 - SQL語句最佳化資料庫SQL
- 【效能最佳化】ORACLE資料庫效能最佳化概述Oracle資料庫
- mysql資料庫最佳化彙總MySql資料庫
- 資料庫之查詢最佳化資料庫
- 如何做資料庫最佳化資料庫
- mysql資料庫SQL最佳化2MySql資料庫
- mysql資料庫SQL最佳化3MySql資料庫
- oracle資料庫最佳化基礎Oracle資料庫
- PG資料庫IO最佳化技巧資料庫
- Access資料庫日常維護和Access資料庫最佳化方法資料庫
- oracle資料庫巡檢最佳化-快速定位資料庫瓶頸Oracle資料庫
- 資料庫大會資料庫
- 大資料4.2 -- hive資料庫大資料Hive資料庫
- mysql資料庫最佳化需要遵守的原則MySql資料庫
- 對資料庫的大體理解資料庫
- 常見資料庫最佳化記錄資料庫