最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年03月19日 11:15:13   作者:CODETC  
今天小編就為大家分享一篇關(guān)于MySQL索引類型Normal、Unique和Full Text的講解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

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

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

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

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

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

Normal:

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

Unique:

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

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

Full Text:

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

總結(jié),索引的類別由建立索引的字段內(nèi)容特性來決定,通常normal最常見。

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

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

1.選擇唯一性索引

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

2.為經(jīng)常需要排序、分組和聯(lián)合操作的字段建立索引

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

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

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

4.限制索引的數(shù)目

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

5.盡量使用數(shù)據(jù)量少的索引

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

6.盡量使用前綴來索引

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

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

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

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

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

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

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

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

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

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

總結(jié)

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

相關(guān)文章

  • Mysql關(guān)于數(shù)據(jù)庫是否應(yīng)該使用外鍵約束詳解說明

    Mysql關(guān)于數(shù)據(jù)庫是否應(yīng)該使用外鍵約束詳解說明

    MySQL 外鍵約束(FOREIGN KEY)是表的一個特殊字段,經(jīng)常與主鍵約束一起使用。對于兩個具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的表就是主表,外鍵所在的表就是從表。外鍵用來建立主表與從表的關(guān)聯(lián)關(guān)系,為兩個表的數(shù)據(jù)建立連接,約束兩個表中數(shù)據(jù)的一致性和完整性
    2021-10-10
  • 101個MySQL的配置和優(yōu)化的提示

    101個MySQL的配置和優(yōu)化的提示

    這里是101條調(diào)節(jié)和優(yōu)化 MySQL安裝的技巧。一些技巧是針對特定的安裝環(huán)境的,但這些思路是通用的。我已經(jīng)把他們分成幾類,來幫助你掌握更多MySQL的調(diào)節(jié)和優(yōu)化技巧
    2013-08-08
  • jdbc連接mysq之serverTimezone設(shè)定方式

    jdbc連接mysq之serverTimezone設(shè)定方式

    這篇文章主要介紹了jdbc連接mysq之serverTimezone設(shè)定方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 一文教你學(xué)會定位線上MySQL鎖超時問題

    一文教你學(xué)會定位線上MySQL鎖超時問題

    這篇文章主要介紹了一文教你學(xué)會定位線上MySQL鎖超時問題,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

    MySQL中Binary Log二進(jìn)制日志文件的基本操作命令小結(jié)

    這篇文章主要介紹了MySQL中Binary Log二進(jìn)制日志文件的基本操作小結(jié),包括利用二進(jìn)制日志恢復(fù)數(shù)據(jù)的方法,需要的朋友可以參考下
    2015-12-12
  • MySQL 虛擬列和虛擬索引的實現(xiàn)示例

    MySQL 虛擬列和虛擬索引的實現(xiàn)示例

    在MySQL 5.7及更高版本中,虛擬列是一個非常有用的特性,本文主要介紹了MySQL 虛擬列和虛擬索引的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • SQL中"1=1"的陷阱:為什么應(yīng)避免使用

    SQL中"1=1"的陷阱:為什么應(yīng)避免使用

    "1=1"在SQL中可能看似無害,但它卻是一個隱藏的陷阱,這個簡單的表達(dá)式可能會導(dǎo)致你的查詢結(jié)果出現(xiàn)偏差,甚至可能引發(fā)安全問題,本指南將揭示這個陷阱,教你如何避免使用"1=1",讓你的數(shù)據(jù)庫操作更加安全、準(zhǔn)確,讓我們一起揭開"1=1"的秘密,提升你的SQL技能!
    2024-02-02
  • MySQL5.7.20解壓版安裝和修改root密碼的教程

    MySQL5.7.20解壓版安裝和修改root密碼的教程

    這篇文章主要介紹了MySQL5.7.20解壓版安裝和修改root密碼的教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-04-04
  • MySQL實現(xiàn)去重的幾種方法小結(jié)

    MySQL實現(xiàn)去重的幾種方法小結(jié)

    在MySQL中,SELECT DISTINCT 和 GROUP BY 可以用來去除重復(fù)記錄,二者有相似的功能,但在某些情況下有所不同,本文將通過代碼示例給大家詳細(xì)介紹這幾種方法,感興趣的小伙伴跟著小編一起來看看吧
    2024-07-07
  • mssql轉(zhuǎn)換mysql的方法小結(jié)

    mssql轉(zhuǎn)換mysql的方法小結(jié)

    mssql轉(zhuǎn)換mysql的方法小結(jié),需要的朋友可以參考下。
    2011-03-03

最新評論

含山县| 孟村| 遵义县| 贵阳市| 历史| 克东县| 喜德县| 平遥县| 武定县| 高阳县| 花莲市| 通海县| 本溪市| 长白| 汉川市| 井陉县| 宽甸| 台州市| 张家港市| 鄂托克前旗| 手机| 安阳市| 扶沟县| 法库县| 常宁市| 嘉义市| 台安县| 五峰| 苗栗县| 偏关县| 盐山县| 西贡区| 彰化市| 泾川县| 疏附县| 银川市| 东乡族自治县| 广西| 恩施市| 富裕县| 密云县|