MYSQL詳解(5) 索引(一)

2021-08-20 17:29:05 字數 2687 閱讀 2313

一.什麼是索引

1.索引:索引是表的目錄,在查詢內容之前可以先在目錄中查詢索引位置,以此快速定位查詢資料;對於索引,會儲存在另外的檔案中。

2.索引是資料庫中專門用於幫組使用者快速查詢資料的一種資料結構,類似於字典的目錄,查詢字典內容時,可以根據目錄查詢到資料的存放位置,然後快速定位;

3.a.索引可以由資料庫中的一列或多列組合而成,其作用是提高對錶中資料的查詢速度;

b.索引的優點是可以提高檢索資料的速度;

c.索引的缺點是建立和維護索引需要耗費時間;

d.索引可以提高查詢速度,會減慢寫入速度;

二.索引的分類

普通索引:加速查詢

eg:  create table in1(

nid int not null auto_increment primary key,

name varchar(32) not null,

email varchar(64) not null,

extra text,

index ix_name (name)

)建立表和索引

建立索引:

create index index_name on table_name(column_name)
刪除索引:

drop index_name on table_name;

檢視索引:

show index from table_name;
注:對於建立索引時如果是blob 和 text 型別,必須指定length。

create index ix_extra on in1(extra(32));
唯一索引:

加速查詢 和 唯一約束(可含null)

eg:建立表+唯一索引

create table in1(

nid int not null auto_increment primary key,

name varchar(32) not null,

email varchar(64) not null,

extra text,

unique ix_name (name)

)

建立唯一索引:

create unique index 索引名 on 表名(列名)

刪除唯一索引:

drop unique index 索引名 on 表名

主鍵索引:

加速查詢 和 唯一約束(不可含null)

建立表+建立主鍵

create table in1(

nid int not null auto_increment primary key,

name varchar(32) not null,

email varchar(64) not null,

extra text,

index ix_name (name)

)

建立主鍵

alter table 表名 add primary key(列名);
刪除主鍵

alter table 表名 drop primary key;

alter table 表名 modify 列名

int, drop primary key;

組合索引:

組合索引是將n個列組合成乙個索引,其應用場景為:頻繁的同時使用n列來進行查詢,如:where n1 = 'alex' and n2 = 666。

建立表

create table in3(

nid int not null auto_increment primary key,

name varchar(32) not null,

email varchar(64) not null,

extra text

)

建立組合索引

create index ix_name_email on in3(name,email);
如上建立組合索引之後,查詢:

注意:對於同時搜尋n個條件時,組合索引的效能好於多個單一索引合併。

MySql索引詳解(一)

一.mysql索引是什麼?1.索引 對資料庫中一列或多列的值進行排序的一種資料結構 2.作用 使用索引,可以讓資料庫系統不必掃瞄整個表,而是直接定位到符合條件的記錄,這樣就大大加快了查詢速度 mysql索引 是一種幫助mysql高效獲取資料的資料結構,這些資料結以某種方式引用資料,這種結構就是索引,...

MySQL聚集索引詳解 mysql 索引詳解

直接起飛 1.什麼是索引?索引是幫助mysql高效獲取資料的排好序的資料結構。2.索引的資料結構?為什麼選這種結構?假設我們現在這裡有一張表 以下情況都是innodb儲存引擎 idnumber 如果mysql沒有索引這種結構,那麼我們如果查詢number為51的這行記錄,那麼mysql就要從上往下掃...

MySQL聚集索引詳解 mysql索引詳解

資料結構分,有b tree索引 b tree 雜湊索引 r tree索引等。按資料塊的順序和索引節點的邏輯順序是否一致可以分為聚集索引和非聚集索引。聚集索引由於物理塊連續,在範圍掃瞄的時候可以減少磁頭尋道時間,因而比非聚集索引高效。幾種索引型別的選擇 primary 主鍵索引。unique 唯一索引...