博客 / 詳情

返回

SQLite之父當年也不知道什麼是覆蓋索引

今天,對於大多數程序員,尤其是那些每天都在處理 CRUD 操作的小夥伴來説,覆蓋索引(Covering Index)簡直就是面試題中最基礎的存在了,早就成了那種“爛大街”的題目,甚至連應屆生都能輕鬆背出來那是什麼。

不過,説實話,在實際開發中,能用到幾次呢?寫一個SELECT * ...,馬上就“失效”了吧~😂

但你知道嗎?當年,就連 SQLite 的作者 D. Richard Hipp 也對這個概念一無所知!你沒聽錯,作為數據庫大佬,他最初可是完全沒接觸過“覆蓋索引”這個概念。直到某次在德國的 PHP 會議上,他碰巧遇到了 MySQL 的創始人之一 David Axmark,才接觸到這個神奇的東西。不過,就在回程的飛機上,Richard 就為 SQLite 添加了覆蓋索引的功能!

Richard 在一次訪談中提到,他當時受邀飛到德國參加一個 PHP 會議,因為那時 PHP 剛剛集成了 SQLite,大會特地邀請他去分享經驗。巧得很,MySQL 的 David Axmark 也在現場。David 在演講中講解了 MySQL 是如何實現覆蓋索引的,頓時讓 Richard 大開眼界!簡單來説,覆蓋索引就是一個包含多個列的索引,若查詢時只需要用到索引中的列,那麼就可以直接從索引中取結果,省去訪問原始表的麻煩,簡直就是數據庫查詢的“加速器”!

在飛回家的航班上,Richard 可謂是靈感爆棚!他把筆記本一開,擼起袖子開始編程,就在大西洋上空的藍天中完成了這個新功能💻✈️✨

這就是技術的魅力,一次會議,一次交流,就可能激發了“改變世界”的靈感!

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.