欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

Normal:

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

Unique:

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

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

Full Text:

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

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

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

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

1.選擇唯一性索引

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

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

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

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

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

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

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

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

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

6.盡量使用前綴來索引

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

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

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

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

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

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

那么這個(gè)會(huì)員編號(hào),作為主鍵,使用 PRIMARY

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

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

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

總結(jié)

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

相關(guān)文章

  • MySQL中將逗號(hào)分隔的字段轉(zhuǎn)換為多行數(shù)據(jù)的方法

    MySQL中將逗號(hào)分隔的字段轉(zhuǎn)換為多行數(shù)據(jù)的方法

    在我們的實(shí)際開發(fā)中,經(jīng)常需要存儲(chǔ)一些字段,它們使用像,?-?等連接符進(jìn)行連接,在查詢過程中,有時(shí)需要將這些字段使用連接符分割,然后查詢多條數(shù)據(jù),今天,我們將使用一個(gè)實(shí)際的生產(chǎn)場(chǎng)景來詳細(xì)解釋這個(gè)解決方案,需要的朋友可以參考下
    2024-04-04
  • MySQL中or語(yǔ)句用法示例

    MySQL中or語(yǔ)句用法示例

    這篇文章主要介紹了MySQL中or語(yǔ)句用法示例,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • 新手學(xué)習(xí)MySQL索引

    新手學(xué)習(xí)MySQL索引

    如果正確合理設(shè)計(jì)并且使用索引的MySQL是一輛蘭博基尼的話,那么沒有索引的MySQL就是一個(gè)人力三輪車。通常大型網(wǎng)站單日就可能會(huì)產(chǎn)生幾十萬甚至幾百萬的數(shù)據(jù),沒有索引查詢會(huì)變的非常緩慢,下面小編來帶大家了解下索引
    2019-05-05
  • Mysql索引詳細(xì)介紹

    Mysql索引詳細(xì)介紹

    這篇文章主要介紹了Mysql索引詳細(xì)介紹,本文講解了Mysql索引簡(jiǎn)介、設(shè)計(jì)索引的原則、如何使用索引等內(nèi)容,需要的朋友可以參考下
    2014-07-07
  • mysql中的limit 1 for update的鎖類型

    mysql中的limit 1 for update的鎖類型

    這篇文章主要介紹了mysql中的limit 1 for update的鎖類型,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • MySQL啟動(dòng)連接的命令以及與PHP程序連接的基本語(yǔ)法

    MySQL啟動(dòng)連接的命令以及與PHP程序連接的基本語(yǔ)法

    這篇文章主要介紹了MySQL啟動(dòng)連接的命令以及與PHP程序連接的基本語(yǔ)法,簡(jiǎn)單講述了PHP中調(diào)用MySQL的方法,需要的朋友可以參考下
    2015-11-11
  • mysql 5.7.20\5.7.21 免安裝版安裝配置教程

    mysql 5.7.20\5.7.21 免安裝版安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了mysql5.7.20和mysql5.7.21免安裝版安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • MySQL中如何在原有的表中增加一列

    MySQL中如何在原有的表中增加一列

    這篇文章主要介紹了MySQL中如何在原有的表中增加一列問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • mysql數(shù)據(jù)存儲(chǔ)過程參數(shù)實(shí)例詳解

    mysql數(shù)據(jù)存儲(chǔ)過程參數(shù)實(shí)例詳解

    這篇文章主要介紹了mysql數(shù)據(jù)存儲(chǔ)過程參數(shù)實(shí)例詳解,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • Mysql悲觀鎖和樂觀鎖的使用示例

    Mysql悲觀鎖和樂觀鎖的使用示例

    這篇文章主要給大家介紹了關(guān)于Mysql悲觀鎖和樂觀鎖使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11

最新評(píng)論