濮阳杆衣贸易有限公司

主頁 > 知識庫 > MySQL索引類型Normal、Unique和Full Text的講解

MySQL索引類型Normal、Unique和Full Text的講解

熱門標簽:淄博400電話申請 昆明電信400電話辦理 電話機器人市場趨勢 電銷機器人各個細節(jié)介紹 俄國地圖標注app 百度地圖標注后不顯示 電銷機器人 行業(yè) 南昌高頻外呼系統(tǒng)哪家公司做的好 溫州瑞安400電話怎么申請

MySQL的索引類型有普通索引(normal),唯一索引(unique)和全文索引(full text),合理使用索引可大大提升數據庫的查詢效率,下面是三種類型的索引的介紹

normal:這是最基本的索引,它沒有任何限制,MyIASM中默認的BTREE類型的索引,是我們大多數情況下用到的索引。

unique:表示唯一的,不允許重復的索引,如果該字段信息保證不會重復。例如身份證號用作索引時,可設置為unique。

full text : 表示全文搜索的索引,僅可用于 MyISAM 表。 FULLTEXT 用于搜索很長一篇文章的時候,效果最好。用在比較短的文本,切記對于大容量的數據表,生成全文索引是一個非常消耗時間非常消耗硬盤空間的做法。

mysql索引類型Normal,Unique,Full Text區(qū)別

Normal:

表示普通索引,大多數情況下都可以使用

Unique:

約束唯一標識數據庫表中的每一條記錄,即在單表中不能用每條記錄是唯一的(例如身份證就是唯一的),Unique(要求列唯一)和Primary Key(primary key = unique + not null 列唯一)約束均為列或列集合中提供了唯一性的保證,Primary Key是擁有自動定義的Unique約束,但是每個表中可以有多個Unique約束,但是只能有一個Primary Key約束。

mysql中創(chuàng)建Unique約束

Full Text:

表示全文收索,在檢索長文本的時候,效果最好,短文本建議使用Index,但是在檢索的時候數據量比較大的時候,現將數據放入一個沒有全局索引的表中,然后在用Create Index創(chuàng)建的Full Text索引,要比先為一張表建立Full Text然后在寫入數據要快的很多

總結,索引的類別由建立索引的字段內容特性來決定,通常normal最常見。

在實際操作過程中,應該選取表中哪些字段作為索引?

為了使索引的使用效率更高,在創(chuàng)建索引時,必須考慮在哪些字段上創(chuàng)建索引和創(chuàng)建什么類型的索引,有7大原則:

1.選擇唯一性索引

唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學生表中學號是具有唯一性的字段。為該字段建立唯一性索引可以很快的確定某個學生的信息。如果使用姓名的話,可能存在同名現象,從而降低查詢速度。

2.為經常需要排序、分組和聯合操作的字段建立索引

經常需要ORDER BY、GROUP BY、DISTINCT和UNION等操作的字段,排序操作會浪費很多時間。如果為其建立索引,可以有效地避免排序操作。

3.為常作為查詢條件的字段建立索引

如果某個字段經常用來做查詢條件,那么該字段的查詢速度會影響整個表的查詢速度。因此,為這樣的字段建立索引,可以提高整個表的查詢速度。

4.限制索引的數目

索引的數目不是越多越好。每個索引都需要占用磁盤空間,索引越多,需要的磁盤空間就越大。修改表時,對索引的重構和更新很麻煩。越多的索引,會使更新表變得很浪費時間。

5.盡量使用數據量少的索引

如果索引的值很長,那么查詢的速度會受到影響。例如,對一個CHAR(100)類型的字段進行全文檢索需要的時間肯定要比對CHAR(10)類型的字段需要的時間要多。

6.盡量使用前綴來索引

如果索引字段的值很長,最好使用值的前綴來索引。例如,TEXT和BLOG類型的字段,進行全文檢索會很浪費時間。如果只檢索字段的前面的若干個字符,這樣可以提高檢索速度。

7.刪除不再使用或者很少使用的索引

表中的數據被大量更新,或者數據的使用方式被改變后,原有的一些索引可能不再需要。數據庫管理員應當定期找出這些索引,將它們刪除,從而減少索引對更新操作的影響。

注意:選擇索引的最終目的是為了使查詢的速度變快。上面給出的原則是最基本的準則,但不能拘泥于上面的準則。讀者要在以后的學習和工作中進行不斷的實踐。根據應用的實際情況進行分析和判斷,選擇最合適的索引方式。

舉個例子來說,比如你在為某商場做一個會員卡的系統(tǒng)。這個系統(tǒng)有一個會員表(大致字段如下):

會員編號   INT
會員姓名   VARCHAR(10)
會員身份證號碼   VARCHAR(18)
會員電話   VARCHAR(10)
會員住址   VARCHAR(50)
會員備注信息  TEXT

那么這個會員編號,作為主鍵,使用 PRIMARY

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

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

會員備注信息如果需要建索引的話,可以選擇 FULLTEXT,全文搜索。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • 解決sql server保存對象字符串轉換成uniqueidentifier失敗的問題
  • mysql unique key在查詢中的使用與相關問題
  • MySQL使用UNIQUE實現數據不重復插入
  • mysql為字段添加和刪除唯一性索引(unique) 的方法
  • Mysql中 unique列插入重復值該怎么解決呢
  • uniqueidentifier轉換成varchar數據類型的sql語句
  • 詳解Unique SQL原理和應用

標簽:葫蘆島 嘉峪關 安徽 洛陽 拉薩 甘南 吐魯番

巨人網絡通訊聲明:本文標題《MySQL索引類型Normal、Unique和Full Text的講解》,本文關鍵詞  MySQL,索引,類型,Normal,Unique,;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL索引類型Normal、Unique和Full Text的講解》相關的同類信息!
  • 本頁收集關于MySQL索引類型Normal、Unique和Full Text的講解的相關信息資訊供網民參考!
  • 推薦文章
    静宁县| 通海县| 黔南| 靖州| 丁青县| 托里县| 重庆市| 博爱县| 岚皋县| 三门峡市| 吉木萨尔县| 石柱| 临邑县| 洛川县| 鹤峰县| 巫山县| 礼泉县| 庆元县| 甘孜县| 长武县| 班玛县| 聂荣县| 琼中| 新龙县| 库车县| 武功县| 碌曲县| 大埔县| 江西省| 太仓市| 麟游县| 武城县| 庆安县| 甘泉县| 桓台县| 大洼县| 陕西省| 新巴尔虎右旗| 石屏县| 虹口区| 开阳县|