MySql索引基本

2022-08-30 22:24:17 字數 931 閱讀 3494

索引用於快速找出在某個列中有一特定值的行。如果不使用索引,需要遍歷整張表,表越大查詢耗時越大;

mysql中的索引的儲存型別有兩種:btree、hash。具體實現機制參照另一篇部落格;

優點:

缺點:

使用原則:

1. 更新頻繁的表應該避免過度索引,對查詢頻繁的字段應該建立索引;

2. 資料量小的表不需要索引;

3. 不同值少的列上(欄位上)不要建立索引,例如學生表的"性別"欄位上只有男,女兩個不同值,無需設定索引;

索引是在儲存引擎中實現的,也就是說不同的儲存引擎,會使用不同的索引;

myisam和innodb儲存引擎:只支援btree索引

memory/heap儲存引擎:支援hash和btree索引

索引分類

定義說明

單列索引

普通索引:欄位沒限制,允許在定義索引列中插入重複值、空值;

唯一索引:索引列中的值必須是唯一的,但允許為空值;

主鍵索引:索引列值必須唯一,不允許為空

乙個索引包含單列,但一張表可以有多個索引

組合索引

表中的多個字段組合上建立的索引

使用組合索引時遵循最左字首集合

全文索引

在一堆資料中,通過某個關鍵字等,就能找到該欄位所屬的記錄行

myisam引擎上才能使用,只能在char,varchar,text型別欄位上使用全文索引

空間索引

空間索引是對空間資料型別的字段建立的索引,

mysql中的空間資料型別有四種,geometry、point、linestring、polygon

參考:

mysql 索引語法 MySQL索引的基本語法

索引是排好序的資料結構!可以用在 where 條件查詢的字段,和order by 排序的字段,有了索引,便可以快速地定位資料所在的實體地址並找出來。索引的分類 1.普通索引 normal 沒有任何約束,主要用於提高查詢效率 2.唯一索引 unique 在普通索引的基礎上增加了資料唯一性的約束,可以有...

mysql索引的基本操作

1.建立表時新增索引 create table user id int,name varchar 30 age int,not null,code text not null,fulltext name,index ind code primary key id 2.新增primary key 主鍵...

mysql 索引基本知識

一 索引的優點 1 減少不必要資料的掃瞄 2 幫助伺服器避免排序和臨時表 3 將隨機io變成順序io 二 索引的用處 1 快速查詢匹配where子句的行 2 在多個索引之間進行選擇,mysql通常會使用找到最少行的索引 雖然可以建立多個索引,但是mysql只會選擇其中乙個,這也就解釋組合索引出現 3...