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

來源:互聯網
上載者:User

標籤:b-樹   儲存   建立表   tab   文本   多列   修改   sql   允許   

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中的普通索引,主健,唯一,全文索引區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.