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

mysql下普通索引和唯一索引的效率對(duì)比

 更新時(shí)間:2010年12月17日 13:59:24   作者:  
昨天有位同事說(shuō),他的網(wǎng)頁(yè)查詢過(guò)程中發(fā)現(xiàn)普通索引和唯一索引的效率是有差別的,普通索引比唯一索引快

今天在我的虛擬機(jī)中布置了環(huán)境,測(cè)試抓圖如下:

抓的這幾個(gè)都是第一次執(zhí)行的,刷了幾次后,取平均值,效率大致相同,而且如果在一個(gè)列上同時(shí)建唯一索引和普通索引的話,mysql會(huì)自動(dòng)選擇唯一索引。

谷歌一下:

唯一索引和普通索引使用的結(jié)構(gòu)都是B-tree,執(zhí)行時(shí)間復(fù)雜度都是O(log n)。

補(bǔ)充下概念:

1、普通索引

 

  普通索引(由關(guān)鍵字KEY或INDEX定義的索引)的唯一任務(wù)是加快對(duì)數(shù)據(jù)的訪問(wèn)速度。因此,應(yīng)該只為那些最經(jīng)常出現(xiàn)在查詢條件(WHEREcolumn=)或排序條件(ORDERBYcolumn)中的數(shù)據(jù)列創(chuàng)建索引。只要有可能,就應(yīng)該選擇一個(gè)數(shù)據(jù)最整齊、最緊湊的數(shù)據(jù)列(如一個(gè)整數(shù)類型的數(shù)據(jù)列)來(lái)創(chuàng)建索引。

2、唯一索引

  普通索引允許被索引的數(shù)據(jù)列包含重復(fù)的值。比如說(shuō),因?yàn)槿擞锌赡芡酝粋€(gè)姓名在同一個(gè)“員工個(gè)人資料”數(shù)據(jù)表里可能出現(xiàn)兩次或更多次。

如果能確定某個(gè)數(shù)據(jù)列將只包含彼此各不相同的值,在為這個(gè)數(shù)據(jù)列創(chuàng)建索引的時(shí)候就應(yīng)該用關(guān)鍵字UNIQUE把它定義為一個(gè)唯一索引。這么做的好處:一是簡(jiǎn)化了MySQL對(duì)這個(gè)索引的管理工作,這個(gè)索引也因此而變得更有效率;二是MySQL會(huì)在有新記錄插入數(shù)據(jù)表時(shí),自動(dòng)檢查新記錄的這個(gè)字段的值是否已經(jīng)在某個(gè)記錄的這個(gè)字段里出現(xiàn)過(guò)了;如果是,MySQL將拒絕插入那條新記錄。也就是說(shuō),唯一索引可以保證數(shù)據(jù)記錄的唯一性。事實(shí)上,在許多場(chǎng)合,人們創(chuàng)建唯一索引的目的往往不是為了提高訪問(wèn)速度,而只是為了避免數(shù)據(jù)出現(xiàn)重復(fù)。

注:

終于找到同事說(shuō)執(zhí)行效率不一樣的原因了,他在普通索引上創(chuàng)建的是前綴索引,只取了前16個(gè)字節(jié),而唯一索引使用的全字節(jié) :)

相關(guān)文章

  • MySQL操作符(and、or、in、not)的具體使用

    MySQL操作符(and、or、in、not)的具體使用

    本文主要介紹了MySQL操作符(and、or、in、not)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • mysql數(shù)據(jù)庫(kù)優(yōu)化總結(jié)(心得)

    mysql數(shù)據(jù)庫(kù)優(yōu)化總結(jié)(心得)

    本篇文章是對(duì)mysql數(shù)據(jù)庫(kù)優(yōu)化進(jìn)行了詳細(xì)的總結(jié)與介紹,需要的朋友參考下
    2013-06-06
  • mysql正確安全清空在線慢查詢?nèi)罩緎low log的流程分享

    mysql正確安全清空在線慢查詢?nèi)罩緎low log的流程分享

    這篇文章主要介紹了正確安全清空在線慢查詢?nèi)罩緎low log的流程,需要的朋友可以參考下
    2014-02-02
  • MySQL時(shí)區(qū)差8小時(shí)的多種問(wèn)題解決方法

    MySQL時(shí)區(qū)差8小時(shí)的多種問(wèn)題解決方法

    mybatis將本地的數(shù)據(jù)傳入到mysql數(shù)據(jù)庫(kù)服務(wù)器的時(shí)候,服務(wù)器會(huì)對(duì)數(shù)據(jù)進(jìn)行檢測(cè),會(huì)把date類型的數(shù)據(jù)自動(dòng)轉(zhuǎn)換為mysql服務(wù)器所對(duì)應(yīng)的時(shí)區(qū),即0時(shí)區(qū),所以會(huì)相差8小時(shí),本文給大家介紹了MySQL時(shí)區(qū)差8小時(shí)的問(wèn)題解決方法,需要的朋友可以參考下
    2024-01-01
  • mysql創(chuàng)建Bitmap_Join_Indexes中的約束與索引

    mysql創(chuàng)建Bitmap_Join_Indexes中的約束與索引

    現(xiàn)象:創(chuàng)建Bitmap Join Indexes時(shí)出現(xiàn)ORA-25954報(bào)錯(cuò): 維的主鍵或唯一約束條件缺失。 53vi.Com 原因:受到約束與索引的影響。
    2008-04-04
  • MySQL事務(wù)(transaction)看這篇就足夠了

    MySQL事務(wù)(transaction)看這篇就足夠了

    M事務(wù)的實(shí)現(xiàn)是基于數(shù)據(jù)庫(kù)的存儲(chǔ)引擎,不同的存儲(chǔ)引擎對(duì)事務(wù)的支持程度不一樣,下面這篇文章主要給大家介紹了關(guān)于MySQL事務(wù)(transaction)的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Mysql 5.7.17 winx64在win7上的安裝教程

    Mysql 5.7.17 winx64在win7上的安裝教程

    本文給大家介紹Mysql 5.7.17 winx64在win7上的安裝教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2017-04-04
  • MySQL數(shù)據(jù)庫(kù)字段超長(zhǎng)問(wèn)題的解決

    MySQL數(shù)據(jù)庫(kù)字段超長(zhǎng)問(wèn)題的解決

    這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)字段超長(zhǎng)問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL重啟之后無(wú)法寫入數(shù)據(jù)的問(wèn)題排查及解決

    MySQL重啟之后無(wú)法寫入數(shù)據(jù)的問(wèn)題排查及解決

    客戶在給系統(tǒng)打補(bǔ)丁之后需要重啟服務(wù)器,數(shù)據(jù)庫(kù)在重啟之后,read_only 的設(shè)置與標(biāo)準(zhǔn)配置 文件中不一致,導(dǎo)致主庫(kù)在啟動(dòng)之后無(wú)法按照預(yù)期寫入,所以本文給大家介紹了MySQL重啟之后無(wú)法寫入數(shù)據(jù)的問(wèn)題排查及解決,需要的朋友可以參考下
    2024-05-05
  • 讓MySQL中某個(gè)表的操作不生成binlog日志的問(wèn)題解決

    讓MySQL中某個(gè)表的操作不生成binlog日志的問(wèn)題解決

    文章介紹了四種方法讓MySQL中某個(gè)表的操作不生成binlog日志:會(huì)話級(jí)臨時(shí)關(guān)閉binlog、通過(guò)復(fù)制過(guò)濾規(guī)則、調(diào)整binlog格式和全局禁用binlog,每種方法都有其適用場(chǎng)景和局限性,建議優(yōu)先使用會(huì)話級(jí)臨時(shí)關(guān)閉方法,并根據(jù)具體需求選擇合適的方案,感興趣的朋友跟隨小編一起看看吧
    2025-03-03

最新評(píng)論

通河县| 聂荣县| 丰城市| 河曲县| 鄢陵县| 晋宁县| 杭锦旗| 汤原县| 阜宁县| 扬中市| 张家口市| 峡江县| 资溪县| 望江县| 马鞍山市| 道孚县| 垫江县| 胶南市| 齐齐哈尔市| 玛曲县| 资源县| 涞源县| 西安市| 五家渠市| 姚安县| 西峡县| 宜都市| 象山县| 抚远县| 类乌齐县| 同仁县| 庆安县| 华亭县| 德州市| 灵台县| 中方县| 连江县| 波密县| 抚宁县| 鄂州市| 改则县|