成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

搞懂MySQL聚集索引與非聚集索

數據庫 MySQL
我們在開發或者面試的過程中經常會涉及到索引。今天我們來詳細剖析一下索引常用的知識點。首先我們先介紹mysql的常用的存儲引擎,其次是索引分類。

一、前言

我們在開發或者面試的過程中經常會涉及到索引。今天我們來詳細剖析一下索引常用的知識點。首先我們先介紹mysql的常用的存儲引擎,其次是索引分類。

二、索引分類

MySQL 的索引有兩種分類方式:邏輯分類和物理分類

三、邏輯分類

有多種邏輯劃分的方式,比如按功能劃分,按組成索引的列數劃分等

3.1、功能劃分

主鍵索引:一張表只能有一個主鍵索引,不允許重復、不允許為 NULL

主鍵索引:一張表只能有一個主鍵索引,不允許重復、不允許為 NULL

 ALTERTABLE TableName ADDPRIMARYKEY(column_list);

唯一索引:數據列不允許重復,允許為 NULL 值,一張表可有多個唯一索引,索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一

CREATE UNIQUE INDEX IndexName ON `TableName`(`字段名`(length));
# 或者
ALTER TABLE TableName ADD UNIQUE (column_list);

普通索引:一張表可以創建多個普通索引,一個普通索引可以包含多個字段,允許數據重復,允許 NULL 值插入;

CREATE INDEX IndexName ON `TableName`(`字段名`(length));
# 或者
ALTER TABLE TableName ADD INDEX IndexName(`字段名`(length));

全文索引:它查找的是文本中的關鍵詞,主要用于全文檢索

按列數劃分

單列索引:一個索引只包含一個列,一個表可以有多個單例索引。

組合索引:一個組合索引包含兩個或兩個以上的列。查詢的時候遵循 最左前綴原則

3.2、物理分類(重點)

聚簇索引

將數據存儲與索引放到了一塊,找到索引也就找到了數據

非聚簇索引

將數據與索引分開存儲,索引結構的葉子節點指向了數據對應的位置

四、不同存儲引擎中索引落盤的差異

存儲引擎

MyISAM:

  • *.frm:與表相關的元數據信息都存放在frm文件,包括表結構的定義信息等
  • *.MYD:MyISAM DATA,用于存儲MyISAM表的數據
  • *.MYI:MyISAM INDEX,用于存儲MyISAM表的索引相關信息

InnoDB:

  • *.frm:與表相關的元數據信息都存放在frm文件,包括表結構的定義信息等
  • *.ibd:InnoDB DATA,表數據和索引的文件。該表的索引(B+樹)的每個非葉子節點存儲索引,葉子節點存儲索引和索引對應的數據

五、假設用戶(t_user)如下

id

name

gender

phone

1

Qin

1

181**

2

Jac


0

125**

3

Jam

1

199**

4

Mic

1

185**

5

Tom

1

147**

6

Sev

0

186**

六、聚集索引 (又叫聚簇索引)

主鍵索引

InnoDB只有一個文件(.ibd文件),那索引放在哪里呢?在InnoDB 里面,它是以主鍵為索引來組織數據的存儲的,所以索引文件和數據文件是同一個文件,都在.ibd文件里面。在InnoDB的主鍵索引的葉子節點上,它直接存儲了我們的數據。

輔助索引

假設在NAME列上創建一個索引,那name的索引B+ tree 如下

查詢IO圖形化表示如下:

主鍵索引與輔助索引配合查詢

非聚集索引

主鍵索引

非聚集索引在葉節點上有一個“指針”直接指向要查詢的數據區域

輔助索引

在MyISAM里面,輔助索引也在這個.MYI文件里面。輔助索引跟主鍵索引存儲和檢索數據的方式是沒有任何區別的,一樣是在索引文件里面找到磁盤地址,然后到數據文件里面獲取數據。?

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2011-04-22 14:45:45

SQL索引

2010-07-19 16:26:05

SQL Server非

2015-10-30 15:55:43

MySQL

2010-07-20 13:20:26

SQL Server聚

2010-07-20 12:46:23

SQL Server聚

2014-08-28 10:06:57

SQL Server

2023-06-05 08:07:34

聚集索引存儲數據

2022-03-25 10:38:40

索引MySQL數據庫

2010-07-07 11:20:02

SQL Server聚

2010-07-19 16:17:41

SQL Server聚

2011-03-30 11:28:31

SQL Server聚集索引

2012-02-29 09:44:54

MySQL

2011-08-30 16:43:32

SQL Server

2011-07-11 13:11:54

MySQL索引數據結構

2017-07-06 08:12:02

索引查詢SQL

2010-09-16 13:42:55

SQL SERVER索

2010-07-20 12:35:33

SQL Server索

2010-09-01 11:39:17

DB2聚集目標表

2012-01-16 17:50:04

Informatica
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人a免费| 午夜不卡一区二区 | 超碰520| 偷拍自拍网址 | 国产激情在线 | 中文字幕av高清 | 久久涩涩 | 91精品无人区卡一卡二卡三 | 在线看一区二区 | 黄色成人av | 亚洲日本一区二区三区四区 | 久久国产精品一区 | 视频在线日韩 | 国产精品一区二区日韩 | 久久亚洲91 | 亚洲欧洲在线观看视频 | 国产传媒毛片精品视频第一次 | 欧美日产国产成人免费图片 | 一级片视频免费观看 | 国产视频1区 | 亚洲国产精品成人 | 操人视频在线观看 | 午夜国产| 亚洲精品一区二区三区蜜桃久 | 欧美一区视频在线 | 午夜久久久 | 欧美中文在线 | 中文字幕不卡在线观看 | 欧美一区二区三区日韩 | 国产91一区二区三区 | 国产精品久久久久久妇女6080 | 国产成人午夜电影网 | 视频一区二区在线观看 | 亚洲视频在线一区 | 玖玖色在线视频 | 久久久久久国产精品久久 | 国产一区二区三区久久 | 成年人黄色小视频 | 天堂在线www | 国产一区二区三区日韩 | 欧美一级欧美三级在线观看 |