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

MYSQL索引用來快速地尋找那些具備特定值的記錄,全部MySQL索引都以B-樹的形式保存。若是沒有索引,執行查詢時MySQL必須從第一個記錄 開始掃描整個表的全部記錄,直至找到符合要求的記錄。表裏面的記錄數量越多,這個操做的代價就越高。若是做爲搜索條件的列上已經建立了索引,MySQL無 需掃描任何記錄便可迅速獲得目標記錄所在的位置。若是表有1000個記錄,經過索引查找記錄至少要比順序掃描記錄快100倍。spa


整體分析 3d

PRIMARY, INDEX, UNIQUE 這3種是一類

PRIMARY 主鍵。 就是 惟一 且 不能爲空。

INDEX 索引,普通的

UNIQUE 惟一索引。 不容許有重複。

FULLTEXT 是全文索引,用於在一篇文章中,檢索文本信息的。
htm

MYSQL的索引類型:PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什麼區別?各適用於什麼場合?

舉個例子來講,好比你在爲某商場作一個會員卡的系統。
這個系統有一個會員表
有下列字段:
會員編號 INT
會員姓名 VARCHAR(10)
會員身份證號碼 VARCHAR(18)
會員電話 VARCHAR(10)
會員住址 VARCHAR(50)
會員備註信息 TEXT

那麼這個 會員編號,做爲主鍵,使用 PRIMARY
會員姓名 若是要建索引的話,那麼就是普通的 INDEX
會員身份證號碼 若是要建索引的話,那麼能夠選擇 UNIQUE (惟一的,不容許重複)
會員備註信息 , 若是須要建索引的話,能夠選擇 FULLTEXT,全文搜索。

不過 FULLTEXT 用於搜索很長一篇文章的時候,效果最好。
用在比較短的文本,若是就一兩行字的,普通的 INDEX 也能夠。
blog

建立索引使用說明 索引

普通索引

這是最基本的索引類型,並且它沒有惟一性之類的限制。
get

建立索引,例如CREATE INDEX <索引的名字> ON tablename (列的列表);
修改表,例如ALTER TABLE tablename ADD INDEX [索引的名字] (列的列表);
建立表的時候指定索引,例如CREATE TABLE tablename ( [...], INDEX [索引的名字] (列的列表) );
博客


惟一性索引

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


MYSQL主鍵:

MYSQL主鍵是一種惟一性索引,但它必須指定爲「PRIMARY KEY」。
table

例如「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 [索引的名字] (列的列表)
);

詳細介紹請查看全文:https://cnblogs.com/qianzf/

原文博客的連接地址:https://cnblogs.com/qzf/

相關文章
相關標籤/搜索