亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mysql單表訪問方法圖文示例詳解

 更新時(shí)間:2023年07月04日 08:33:26   作者:Zeran  
這篇文章主要為大家介紹了Mysql單表訪問方法圖文示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

訪問方法的概念

設(shè)計(jì)MySQL的大叔把MySQL執(zhí)行查詢語句的方式稱為訪問方法(access method)或者訪問類型。同一個(gè)查詢語句可以使用多種不同的訪問方法來執(zhí)行,雖然最后的查詢結(jié)果都是一樣的,但是不同的執(zhí)行方式話費(fèi)的時(shí)間成本可能差距甚大。就像是從北京南鑼鼓巷到什剎海,你可以打車去,也可以坐地鐵去,坐公交去,還可以騎共享單車去,當(dāng)然也可以走著去。

表結(jié)構(gòu)

CREATE TABLE single_table(
    id int not null auto_increment,
    key1 VARCHAR(100),
    key2 int,
    key3 VARCHAR(100),
    key_part1 VARCHAR(100),
    key_part2 VARCHAR(100),
    key_part3 VARCHAR(100),
    common_field VARCHAR(100),
    PRIMARY KEY(id),
    key idx_key1(key1),
    unique key uk_key2(key2),
    key idx_key3(key3),
    key idx_key_part(key_part1,key_part2,key_part3)
)engine=INNODB charset=utf8mb4

const

有時(shí)需要通過主鍵列定位一條記錄,如下:

select * from single_table where id = 12;

MySQL會(huì)直接利用主鍵值在聚簇索引中定位對(duì)應(yīng)的用戶記錄,如下:

與之類似,我們根據(jù)唯一二級(jí)索引列來定位一條記錄的速度也是賊快的。比如下面的查詢:

select * from single_talbe where key2 = 12;

這個(gè)查詢的執(zhí)行過程的示意圖如下:

可以看到這個(gè)查詢的執(zhí)行分為下面兩步:

  • 步驟1. 在uk_key2對(duì)應(yīng)的B+樹索引中,根據(jù)key2列與常數(shù)的等值比較條件定位到一條二級(jí)索引記錄。
  • 步驟2. 然后再根據(jù)該記錄的id值到聚簇索引中獲取到完整的用戶記錄。

設(shè)計(jì)MySQL的大叔認(rèn)為,通過主鍵或者唯一二級(jí)索引列與常數(shù)的等值比較來定位一條記錄像是坐火箭一樣快的,所以他們把這種通過主鍵或者唯一二級(jí)索引列來定位一條記錄的訪問方法定義為const(意思是常數(shù)級(jí)別的,代價(jià)是可以忽略不計(jì)的)。不過這種const訪問方法只能在主鍵列或者唯一二級(jí)索引列與一個(gè)常數(shù)進(jìn)行等值比較時(shí)才有效。如果主鍵或者唯一二級(jí)索引的索引列由多個(gè)列構(gòu)成,則只有在索引列中的每一個(gè)列都與常數(shù)進(jìn)行等值比較時(shí),這個(gè)const訪問方法才有效(這是因?yàn)橹挥性谠撍饕拿恳粋€(gè)列都采用等值比較時(shí),才可以保證最多只有一條記錄符合搜索條件)。

對(duì)于唯一二級(jí)索引來說,在查詢列為null值時(shí),情況比較特殊。比如下面這樣:

select * from single_table where key2 is null;

因?yàn)槲ㄒ欢?jí)索引列并不限制null值的數(shù)量,所以上述語句可能訪問到多條記錄。也就是說上面這個(gè)語句不可以使用const訪問方法來執(zhí)行。

以上就是Mysql單表訪問方法的詳細(xì)內(nèi)容,更多關(guān)于Mysql單表訪問方法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • innodb_index_stats導(dǎo)入備份數(shù)據(jù)時(shí)報(bào)錯(cuò)表主鍵沖突的解決方法

    innodb_index_stats導(dǎo)入備份數(shù)據(jù)時(shí)報(bào)錯(cuò)表主鍵沖突的解決方法

    下面小編就為大家?guī)硪黄猧nnodb_index_stats導(dǎo)入備份數(shù)據(jù)時(shí)報(bào)錯(cuò)表主鍵沖突的解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Mysql8.0輕松實(shí)現(xiàn)主從復(fù)制

    Mysql8.0輕松實(shí)現(xiàn)主從復(fù)制

    這篇文章主要介紹了Mysql8.0輕松實(shí)現(xiàn)主從復(fù)制方法的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • MySQL字符集中文亂碼解析

    MySQL字符集中文亂碼解析

    這篇文章主要給大家解析了MySQL字符集中文亂碼的問題,文章通過代碼示例講解的非常詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-09-09
  • 詳解MySQL數(shù)據(jù)庫設(shè)置主從同步的方法

    詳解MySQL數(shù)據(jù)庫設(shè)置主從同步的方法

    最近一直在研究mysql的主從同步問題,現(xiàn)在網(wǎng)上也有很多資料,現(xiàn)在感覺寫的都很好(當(dāng)初感覺寫的很差,是因?yàn)樽约旱念I(lǐng)悟較差),于是想跟大家分享一下自己配置的整個(gè)過程和經(jīng)驗(yàn)。有需要的朋友歐美可以參考借鑒,感興趣的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-11-11
  • windows版本下mysql的安裝啟動(dòng)和基礎(chǔ)配置圖文教程詳解

    windows版本下mysql的安裝啟動(dòng)和基礎(chǔ)配置圖文教程詳解

    本文通過圖文并茂的形式給大家介紹了windows版本下mysql的安裝啟動(dòng)和基礎(chǔ)配置圖文教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • MySQL實(shí)現(xiàn)字符串的拼接,截取,替換,查找位置的操作

    MySQL實(shí)現(xiàn)字符串的拼接,截取,替換,查找位置的操作

    這篇文章主要介紹了MySQL實(shí)現(xiàn)字符串的拼接,截取,替換,查找位置的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • MySQL中or語句用法示例

    MySQL中or語句用法示例

    這篇文章主要介紹了MySQL中or語句用法示例,小編覺得挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-10-10
  • MySql8 WITH RECURSIVE遞歸查詢父子集的方法

    MySql8 WITH RECURSIVE遞歸查詢父子集的方法

    這篇文章主要介紹了MySql8 WITH RECURSIVE遞歸查詢父子集的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 關(guān)于mysql 8.x 中insert ignore的性能問題

    關(guān)于mysql 8.x 中insert ignore的性能問題

    這篇文章主要介紹了關(guān)于mysql 8.x 中insert ignore的性能問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2022-08-08
  • Mysql 增加主鍵或者修改主鍵的sql語句操作

    Mysql 增加主鍵或者修改主鍵的sql語句操作

    這篇文章主要介紹了Mysql 增加主鍵或者修改主鍵的sql語句操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評(píng)論