MYSQL中的普通索引,主健,唯一,全文索引區別

2021-07-29 11:11:07 字數 2007 閱讀 5318

mysql索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b-樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜尋條件的列上已經建立了索引,mysql無需掃瞄任何記錄即可迅速得到目標記錄所在的位置。如果表有1000個記錄,通過索引查詢記錄至少要比順序掃瞄記錄快100倍。

總體分析

primary, index, unique 這3種是一類

primary 主鍵。 就是 唯一 且 不能為空。

index 索引,普通的

unique 唯一索引。 不允許有重複。

fulltext 是全文索引,用於在一篇文章中,檢索文字資訊的。

mysql的索引型別:primary, index,unique,fulltext,spaial 有什麼區別?各適用於什麼場合?

舉個例子來說,比如你在為某商場做乙個會員卡的系統。

這個系統有乙個會員表

有下列字段:

會員編號 int

會員姓名 varchar(10)

會員身份證號碼 varchar(18)

會員** varchar(10)

會員住址 varchar(50)

會員備註資訊 text

那麼這個 會員編號,作為主鍵,使用 primary

會員姓名 如果要建索引的話,那麼就是普通的 index

會員身份證號碼 如果要建索引的話,那麼可以選擇 unique (唯一的,不允許重複)

會員備註資訊 , 如果需要建索引的話,可以選擇 fulltext,全文搜尋。

不過 fulltext 用於搜尋很長一篇文章的時候,效果最好。

用在比較短的文字,如果就一兩行字的,普通的 index 也可以。

建立索引使用說明

普通索引

這是最基本的索引型別,而且它沒有唯一性之類的限制。

建立索引,例如create index 《索引的名字》 on tablename (列的列表);

修改表,例如alter table tablename add index [索引的名字] (列的列表);

建立表的時候指定索引,例如create table tablename ( […], index [索引的名字] (列的列表) );

唯一性索引

這種索引和前面的「普通索引」基本相同,但有乙個區別:索引列的所有值都只能出現一次,即必須唯一。

mysql主鍵:

mysql主鍵是一種唯一性索引,但它必須指定為「primary key」。

例如「create table tablename ( […], primary key (列的列表) ); 」。但是,我們也可以通過修改表的方式加入主鍵,例如「alter table tablename add primary key (列的列表); 」。每個表只能有乙個主鍵。

全文索引

mysql從3.23.23版開始支援全文索引和全文檢索。在mysql中,全文索引的索引型別為fulltext。全文索引可以在varchar或者text型別的列上建立。它可以通過create table命令建立,也可以通過alter table或create index命令建立。對於大規模的資料集,通過alter table(或者create index)命令建立全文索引要比把記錄插入帶有全文索引的空表更快。

單列索引與多列索引

建立索引,例如create unique index 《索引的名字》 on tablename (列的列表);

修改表,例如alter table tablename add unique [索引的名字] (列的列表);

建立表的時候指定索引,例如create table tablename ( […], unique [索引的名字] (列的列表)

);

MySQL 普通索引 唯一索引和主索引

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

MySQL 普通索引 唯一索引和主索引

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

MySQL 普通索引 唯一索引和主索引

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