MySQL索引詳解

2021-10-14 02:00:21 字數 2553 閱讀 8679

二、索引操作

2)唯一索引

3)主鍵索引

2.刪除索引

2)唯一索引

3)主鍵索引

3.檢視索引

三、選擇索引原則

索引列值可重複,常用於過濾資料。例如,以商品種類作為索引,檢索種類 為「手機」的商品。

索引列值必須唯一,可以為null,主要用於標識一列資料不允許重複的特性, 相比主鍵索引不常用於檢索的場景。

索引列值必須唯一,不能為null,乙個表只能有乙個主鍵索引,是行的唯一 標識,因而其主要用途是檢索特定資料。

給每個字段建立索引,效率低,常用於文字中內容的檢索。

1)普通索引

1>建立表時指定

mysql> create table student1(id int not null, name varchar(100) not null,birthdy date, *** char(1) not null, index nameindex (name(50)));
2>基於表結構建立
mysql> create table student2(id int not null, name varchar(100) not null,birthday date, *** char(1) not null);

mysql> create index nameindex on

3>修改表結構建立
mysql> create table student3(id int not null, name varchar(100) not null,birthday date, *** char(1) not null);

mysql> alter table student3 add index nameindex(name(50));

4>檢視索引
mysql> show index from student3;
2)唯一索引

1>建立表時指定

mysql> create table student4(id int not null, name varchar(100) not null,birthday date, *** char(1) not null, unique index id_idex (id));
2>基於表結構建立
mysql> create table student5(id int not null, name varchar(100) not null,birthday date, *** char(1) not null);

mysql> create unique index idindex on student5(id);

3)主鍵索引

1>建立表時指定

mysql> create table student6(id int not null, name varchar(100) not null,birthday date, *** char(1) not null, primary key (id));
2>修改表結構建立
mysql> create table student7(id int not null, name varchar(100) not null,birthday date, *** char(1) not null);

mysql> alter table student7 add primary key (id);

1)普通索引

1>直接刪除

mysql> drop index nameindex on student1;
2>修改表結構刪除
mysql> alter table student2 drop index nameindex;
2)唯一索引

1>直接刪除

mysql> drop index idindex on student4;
2>修改表結構刪除
mysql> alter table student drop index idindex;
3)主鍵索引

修改表結構刪除,主鍵不能採用直接刪除的方式刪除

mysql> alter table student drop primary key;
mysql> show index from 表名;
優點:

使用索引的好處是索引通過一定的演算法建立了索引值與列值直接的聯絡,可以通過索引直接獲取對應的行資料,而無需進行全表搜尋,因而加快了檢索速度。

缺點:由於索引也是一種資料結構,它需要佔據額外的記憶體空間,並且讀取索引 也加會大io資源的消耗,因而索引並非越多越好,且對過小的表也沒有新增索引的必要。

1)硬體問題。如網路速度慢,記憶體不足,i/o吞吐量小,磁碟空間滿了等。

2)沒有索引或者索引失效.

3)資料過多(分庫分表)

4)伺服器調優及各個引數設定(調整my.cnf)

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 中的資料列建立索引。只要有可能,就應該選擇乙個資料最整齊 最緊湊的...