索引表存儲
1. 按照存儲結構劃分,索引分為哪兩類各有何作用
聚集索引:對表在物理數據頁中的數據排列進行排序,然後重新存儲到磁碟上,表中的數據行只能以一種方式存儲在磁碟上,故一個表只能有一個聚集索引。創建任何非聚集索引之前必須創建聚集索引。
非聚集索引:具有完全獨立於數據行的結構,使用非聚集索引不會影響數據表中記錄的實際存儲順序。
(1)索引表存儲擴展閱讀
優點
1.大大加快數據的檢索速度;
2.創建唯一性索引,保證資料庫表中每一行數據的唯一性;
3.加速表和表之間的連接;
4.在使用分組和排序子句進行數據檢索時,可以顯著減少查詢中分組和排序的時間。
缺點
1.索引需要佔物理空間。
2.當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,降低了數據的維護速度。
2. 索引在mysql中怎麼存儲的
聚集索引:也稱 Clustered Index。是指關系表伍隱記錄的物理順序與索引的邏輯順序相同。由於一張表只能按照一種物理順序存放,一張表最多也只能存在一個聚集索引。與非聚集索引相比,聚集索引有著更快的檢索速度。
MySQL 里只有 INNODB 表支持聚集索引,INNODB 表數據本身就是聚集索引,也就是常說 IOT,索引組織表。非葉子節點按照主鍵順序存放,葉子節點存放主鍵以及對應的行記錄。所以對 INNODB 表進行全表順序掃橋橘返描會非常快。
非聚集索引:也叫 Secondary Index。指的是非葉子節點按照索引的鍵值順序存放,葉子節點存放索敏飢引鍵值以及對應的主鍵鍵值。MySQL 里除了 INNODB 表主鍵外,其他的都是二級索引。MYISAM,memory 等引擎的表索引都是非聚集索引。簡單點說,就是索引與行數據分開存儲。一張表可以有多個二級索引。
3. 數據結構的存儲方式有哪幾種
1.順序存儲方式:順序存儲方式就是在一塊連續的存儲區域一個接著一個的存放數據。順序存儲方式把邏輯上相鄰的節點存儲在物理位置撒花姑娘相鄰的存儲單元里,節點間的邏輯關系由存儲單元的鄰接關系來體現。順序存儲方式也稱為順序存儲結構,一般採用數組或結構數組來描述。
2.鏈接存儲方式:鏈接存儲方式比較靈活,不要求邏輯上相鄰的節點在物理位置上相鄰,節點間的邏輯關系由附加的引用顫型欄位來表示。一個節點的引用欄位往往指茄耐猜向下一個節點的存放位置。
3.索引存儲方式:索引存儲方式是採用附加的索引表的方式來存儲節點信息的一種存儲方式。索引表由若干索引項組成。
4.散列存儲方式:散列存儲方式是根據節點的關鍵字直接計算出該節點的存儲地址的一種存儲方式。在實際應畝含用中,往往需要根據具體的數據結構來決定採用哪種存儲方式。
4. 數據存儲方式
數據存儲方式有以下幾種:
(1)順序存儲方法。該方法把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現。由此得到的存儲表示稱為順序存儲結構 (Sequential Storage Structure ),通常藉助程序語言的數組描述。該方法主要應用於線性的數據結構。非線性的數據結構也可通過某種線性化的方法實現順序存儲。
(2)鏈接存儲方法。該方法不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系由附加的指針欄位表示。由此得到的存儲表示稱為鏈式存儲結構(Linked Storage Structure), 通常藉助於程序語言的指針類型描述。
(3)索引存儲方法。該方法通常在儲存結點信息的同時,還建立附加的索引表。 索引表由若干索引項組成。若每個結點在索引表中都有一個索引項,則該索引表稱之為稠密索引(Dense Index )。
(4)散列存儲方法,該方法的基本思想是根據結點的關鍵字直接計算出該結點的存儲地址。