mysql 索引詳解

2021-10-03 04:33:03 字數 2197 閱讀 3400

索引優點:

索引缺點:

索引的分類

普通索引(index)

使用規則:

乙個表可以有多個index欄位

欄位的值可以重複,也可以為null,字段值無約束

經常作為查詢條件的字段設定為index欄位

index欄位的key標誌null

建立普通索引(有三種方法)

方法1:建立表時建立索引index

create table student(

id int,

name varchar(25),

score float(5,2),

index(name), # 建立name索引

index(score) # 建立score索引

);

方法2:建立表後建立索引index:索引名一般和欄位名一樣,只要自己能認出就行,可以隨便起名。
create index 索引名稱 on 表名(欄位名稱)

create index name on student(name)

方法3:建立表後建立索引index
alter table 表名稱 add index 索引名稱(欄位名稱)

alter table student add index nameindex(name)

檢視普通索引:key一列就是索引的列
desc 表名

desc student

show index from 表名

show index from student

刪除普通索引:刪除普通索引只能乙個乙個刪除
drop index 索引名稱 on 表名

drop index nameindex on student

唯一索引(unique)

使用規則:

乙個表可以有多個unique欄位

unique欄位的值不允許重複,可以為null值

unique的課標誌位uni

建立唯一索引(基本等同index建立)

方法1:建立表時建立索引

create table student(

id int,

name varchar(25),

score float(5,2),

unique(name),

unique(score)

);

方法2:建立表後建立索引:索引名一般和欄位名一樣,只要自己能認出就行,可以隨便起名
create unique index 索引名 on 表名(欄位名);
方法3:建立表後建立索引
alter table student add unique name_index(name);
復合索引

方法1:建立表時建立索引

create table student(

id int,

name varchar(25),

score float(5,2),

index(name), # 建立name索引

index(score) # 建立score索引

);

方法2:建立表後建立索引

create index 索引名稱 on table(字段,字段)

create index index_name_score on student(name,score)

方法3:建立表後建立索引

alter table 表名 add index_name_score(name,score)

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

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

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

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

mysql 索引定義 MySQL 索引詳解

普通索引 唯一索引和主索引 1.普通索引 普通索引 由關鍵字key或index定義的索引 的唯一任務是加快對資料的訪問速度。因此,應該只為那些最經常出現在查詢條件 where column 或排序條件 order by column 中的資料列建立索引。只要有可能,就應該選擇乙個資料最整齊 最緊湊的...