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

MySQL中between...and的使用對(duì)索引的影響說(shuō)明

 更新時(shí)間:2023年07月28日 10:17:06   作者:米飯呀!大米飯  
這篇文章主要介紹了MySQL中between...and的使用對(duì)索引的影響說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1. 問(wèn)題場(chǎng)景

一開(kāi)始在某個(gè)字段加了普通索引,SQL語(yǔ)句查找該字段范圍內(nèi)的數(shù)據(jù)。

開(kāi)始加索引的時(shí)候是能使用上索引的,但是過(guò)了幾天,數(shù)據(jù)量增大,發(fā)現(xiàn)檢索語(yǔ)句沒(méi)有走索引了。

2. 準(zhǔn)備測(cè)試

2.1 創(chuàng)建測(cè)試表

CREATE TABLE `test_index` (
`id`  int(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`name`  varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' ,
`age`  tinyint(5) UNSIGNED NOT NULL DEFAULT 0 ,
`status`  tinyint(1) UNSIGNED NOT NULL DEFAULT 1 ,
`create_time`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
)

2.2 在age字段上加普通索引

ALTER TABLE `test_index`
ADD INDEX `age` (`age`) USING BTREE

2.3 插入3條測(cè)試數(shù)據(jù)

insert into test_index(name,age,create_time) values('Tom',12,time()),('Tobie',20,time()),('Jack',15,time())

3. 測(cè)試是否走索引(總記錄數(shù)total-t,結(jié)果數(shù)result-r)

3.1 total = 3

測(cè)試一(t=3,r=0,走索引):

在這里插入圖片描述

測(cè)試二(t=3,r=1,走索引):

在這里插入圖片描述

測(cè)試三(t=3,r=2,走索引):

在這里插入圖片描述

測(cè)試四(t=3,r=3,不走索引):

在這里插入圖片描述

3.2 total = 10

  • t=10,r=0,走索引
  • t=10,r=4,走索引
  • t=10,r=5,不走索引

3.3 total=100

  • t=100,r=15,走索引
  • t=100,r=18,走索引
  • t=100,r=19,不走索引

3.4 total = 1000

  • t=1000,r=100,走索引
  • t=1000,r=150,走索引
  • t=1000,r=170,走索引
  • t=1000,r=171,不走索引

3.5 total = 10000

  • t=10000,r=900,走索引
  • t=10000,r=940,走索引
  • t=10000,r=941,不走索引
  • t=10000,r=1000,不走索引

3.6 total = 100000

  • t=100000,r=3948,走索引
  • t=10000,r=3949,不走索引

4. 結(jié)論

不嚴(yán)謹(jǐn)總結(jié)

自己還測(cè)了更大的數(shù)據(jù),發(fā)現(xiàn)betweet…and的使用與單純的數(shù)據(jù)量無(wú)關(guān),而與查找到的數(shù)據(jù)與總數(shù)據(jù)的比有關(guān)

當(dāng)總數(shù)據(jù)量較小時(shí),有很大概率會(huì)走索引,此時(shí)查到的結(jié)果數(shù)可以允許比較大

但總數(shù)據(jù)量比較大之后,查找到的結(jié)果數(shù)據(jù)越小時(shí),越大概率使用上索引

也就是說(shuō),如果有10w的數(shù)據(jù),而你需要查的數(shù)據(jù)為200條,此時(shí)是走索引的。但是,如果你查到的結(jié)果有5000條,那么,極大可能是不走索引的

稍嚴(yán)謹(jǐn)一些的總結(jié)

查詢(xún)數(shù)據(jù)時(shí),如果走普通索引,那么會(huì)產(chǎn)生回表操作,因?yàn)槠胀ㄋ饕龑儆诜蔷奂饕?,葉子節(jié)點(diǎn)存放的是主鍵字段的值,拿到主鍵字段后再去表中根據(jù)主鍵值找到對(duì)應(yīng)的記錄。

因此,當(dāng)數(shù)據(jù)量很大,而查詢(xún)數(shù)據(jù)也很大時(shí),考慮到回表的消耗,就不走索引;

當(dāng)數(shù)據(jù)量很大,而查詢(xún)數(shù)據(jù)很小,這個(gè)時(shí)候比起全表掃描,回表的消耗相對(duì)少,所以走索引

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL如何運(yùn)行sql文件圖文詳解(以Navicat做演示)

    MySQL如何運(yùn)行sql文件圖文詳解(以Navicat做演示)

    Navicat是MySQL非常好用的可視化管理工具,功能非常強(qiáng)大,能滿足我們?nèi)粘?shù)據(jù)庫(kù)開(kāi)發(fā)的所有需求,這篇文章主要給大家介紹了關(guān)于MySQL如何運(yùn)行sql文件(以Navicat做演示)的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • 超詳細(xì)mysql left join,right join,inner join用法分析

    超詳細(xì)mysql left join,right join,inner join用法分析

    比較詳細(xì)的mysql的幾種連接功能分析,只要你看完就能學(xué)會(huì)的好東西
    2008-08-08
  • mysql對(duì)于模糊查詢(xún)like的一些匯總

    mysql對(duì)于模糊查詢(xún)like的一些匯總

    這篇文章主要給大家介紹了關(guān)于mysql對(duì)于模糊查詢(xún)like的一些匯總,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • MySQL不使用order by實(shí)現(xiàn)排名的三種思路總結(jié)

    MySQL不使用order by實(shí)現(xiàn)排名的三種思路總結(jié)

    ORDER BY語(yǔ)句用于根據(jù)指定的列對(duì)結(jié)果集進(jìn)行排序,在日常開(kāi)發(fā)中也經(jīng)常會(huì)用到,但下面這篇文章主要給大家介紹了關(guān)于MySQL不使用order by實(shí)現(xiàn)排名的三種思路,需要的朋友可以參考下
    2021-06-06
  • Mysql如何查詢(xún)字符串開(kāi)頭的數(shù)據(jù)

    Mysql如何查詢(xún)字符串開(kāi)頭的數(shù)據(jù)

    這篇文章主要介紹了Mysql如何查詢(xún)字符串開(kāi)頭的數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • MySQL如何刪除mysql數(shù)據(jù)表內(nèi)的重復(fù)數(shù)據(jù)

    MySQL如何刪除mysql數(shù)據(jù)表內(nèi)的重復(fù)數(shù)據(jù)

    這篇文章主要介紹了MySQL如何刪除mysql數(shù)據(jù)表內(nèi)的重復(fù)數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Ubuntu 18.04配置mysql以及配置遠(yuǎn)程連接的步驟

    Ubuntu 18.04配置mysql以及配置遠(yuǎn)程連接的步驟

    這篇文章主要給大家介紹了關(guān)于Ubuntu 18.04配置mysql以及配置遠(yuǎn)程連接的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • clickhouse中Nullable與非空字段的建表與類(lèi)型互轉(zhuǎn)方式

    clickhouse中Nullable與非空字段的建表與類(lèi)型互轉(zhuǎn)方式

    這篇文章主要介紹了clickhouse中Nullable與非空字段的建表與類(lèi)型互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Mysql分組查詢(xún)?nèi)ax那條記錄其它字段方式

    Mysql分組查詢(xún)?nèi)ax那條記錄其它字段方式

    這篇文章主要介紹了Mysql分組查詢(xún)?nèi)ax那條記錄其它字段方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • mysql字符集和數(shù)據(jù)庫(kù)引擎修改方法分享

    mysql字符集和數(shù)據(jù)庫(kù)引擎修改方法分享

    使用虛擬主機(jī)空間上的phpmyadmin操作數(shù)據(jù)庫(kù)的時(shí)候,如果看到phpmyadmin首頁(yè)上顯示的MySQL 字符集為cp1252 West European (latin1),當(dāng)我們導(dǎo)入數(shù)據(jù)時(shí)就會(huì)出現(xiàn)亂碼
    2012-02-02

最新評(píng)論