亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL索引如何工作?

MySQL索引如何工作?

一只甜甜圈 2019-08-14 17:00:54
MySQL索引如何工作?我對MySQL索引的工作方式非常感興趣,更具體地說,他們如何在不掃描整個表的情況下返回所請求的數據?我知道,這是偏離主題的,但如果有人可以向我詳細解釋這一點,我會非常,非常感謝。
查看完整描述

3 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

基本上,表上的索引就像書中的索引(名稱來自的位置):

假設你有一本關于數據庫的書,你想找一些關于存儲的信息。沒有索引(假設沒有其他幫助,例如目錄),您必須逐個瀏覽頁面,直到找到主題(即a full table scan)。另一方面,索引有一個關鍵字列表,所以你可以參考索引,看看storage第113-120,231和354頁上提到的那個。然后你可以直接翻到這些頁面,而無需搜索(這是一個搜索索引,有點快)。

當然,索引的有用性取決于很多東西 - 一些例子,使用上面的明喻:

  • 如果您有一本關于數據庫的書并將“數據庫”這個詞編入索引,您會看到它在1-59,61-290和292到400頁中提到過。在這種情況下,索引沒有多大幫助,它可能會更快地逐頁瀏覽(在數據庫中,這是“差的選擇性”)。

  • 對于一本10頁的書,制作一個索引是沒有意義的,因為你可能最終得到一個10頁的書,前面有一個5頁的索引,這只是愚蠢的 - 只需掃描10頁并完成它。

  • 索引也需要有用 - 通常沒有必要索引例如每頁字母“L”的頻率。


查看完整回答
反對 回復 2019-08-14
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

基本上,索引是按順序排序的所有鍵的映射。按順序列表,然后它可以執行以下操作,而不是檢查每個鍵:

1:進入列表中間 - 是高還是低于我正在尋找的?

2:如果更高,則進入中間和底部之間的中間位置,如果是低位,中位和頂部

3:更高還是更低?再次跳到中間點等

使用該邏輯,您可以在大約7個步驟中找到排序列表中的元素,而不是檢查每個項目。

顯然有復雜性,但這給了你基本的想法。


查看完整回答
反對 回復 2019-08-14
  • 3 回答
  • 0 關注
  • 420 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號