資料庫索引

2021-06-28 07:48:32 字數 608 閱讀 3363

從應用程式包括使用者介面的角度來看,訪問資訊的最小單位是byte(位元組);

從磁碟的物理結構來看訪問資訊的最小單位是扇區,乙個扇區是512位元組;

從作業系統對硬碟的訪問管理來看,訪問資訊的最小單位是簇,簇是乙個邏輯概念,乙個簇可以是2、4、8、16、32或64個連續的扇區。乙個簇只能被乙個檔案占用,哪怕是只有1個位元組的檔案,在磁碟上儲存時也要占用乙個簇,這個簇裡剩下的扇區是無用的。例如用ntfs檔案系統格式化的時候預設是8個扇區組成乙個簇,即4096位元組。所以你如果儲存了乙個只有1位元組的檔案(例如字母n),它在磁碟上實際也要占用4096位元組(4k),所以「簇」也可以理解為磁碟訪問資訊的最小單位。

資料庫查詢最耗時間的是磁碟檔案的io操作。
考慮如下情況,假設資料庫中乙個表有10^6條記錄,dbms的頁面大小為4k,並儲存100條記錄。如果沒有索引,查詢將對整個表進行掃瞄,最壞的情況下,如果所有資料頁都不在記憶體,需要讀取10^4個頁面,如果這10^4個頁面在磁碟上隨機分布,需要進行10^4次i/o,假設磁碟每次i/o時間為10ms(忽略資料傳輸時間),則總共需要100s(但實際上要好很多很多)。如果對之建立b-tree索引,則只需要進行log100(10^6)=3次頁面讀取,最壞情況下耗時30ms。

資料庫 資料庫索引

索引是儲存引擎用於快速找到記錄的一種資料結構。索引以檔案的形式儲存在磁碟中。索引可以包含乙個或多個列的值。儲存引擎查詢資料的時候,先在索引中找對應值,然後根據匹配的索引記錄找到對應的資料行。1.b tree索引 2.雜湊索引 myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用...

資料庫mysql索引 資料庫 mysql索引

mysql 索引 mysql索引的建立對於mysql的高效執行是很重要的,索引可以大大提高mysql的檢索速度。打個比方,如果合理的設計且使用索引的mysql是一輛蘭博基尼的話,那麼沒有設計和使用索引的mysql就是乙個人力三輪車。索引分單列索引和組合索引。單列索引,即乙個索引只包含單個列,乙個表可...

資料庫索引

索引 索引列唯一索引 主鍵索引 聚簇索引和非聚簇索引 如何建立索引 如何刪除索引 使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構,例如 employee 表的姓 lname 列。如果要按姓查詢特定職員,與必須搜尋表中的所有行相比,索引會幫助您更快地獲得該資...