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

Innodb表select查詢順序

 更新時(shí)間:2017年01月01日 20:20:06   作者:wubx  
這篇文章主要介紹了Innodb表select查詢順序的相關(guān)資料,需要的朋友可以參考下

今天知數(shù)堂一個(gè)學(xué)生反饋說在優(yōu)化課中老師講Innodb是以主鍵排序存儲(chǔ),讀取的時(shí)間以主鍵為順序讀取,但發(fā)現(xiàn)個(gè)例外,如下:

CREATE TABLE zst_t1 ( 

uid int(10) NOT NULL AUTO_INCREMENT, 

id int(11) NOT NULL, 

PRIMARY KEY ( uid ), 

KEY idx_id ( id ) 

) ENGINE=InnoDB;'

寫入數(shù)據(jù):

INSERT INTO zst_t1 VALUES (1,1),(12,1),(22,1),(23,1),(33,1),(2,2),(3,2),(10,2),(11,2),(4,4),(13,4),(14,4); 

執(zhí)行查詢:

select * from zst_t1;

為什么這個(gè)順序是亂的,不按順序排列呢?難道Innodb表并不是全按主鍵存儲(chǔ)?

使用innodb_ruby這個(gè)工具查看一下存儲(chǔ)結(jié)構(gòu)什么樣

看樣子存儲(chǔ)還是按主鍵排序存儲(chǔ)的。沒毛病。

再來看一下該表的索引:

看到這里應(yīng)該明白了怎么會(huì)事了吧,原來這個(gè)查詢是走的索引覆蓋,沒有在進(jìn)行回表讀取原數(shù)據(jù)。另外,也在此說明,Innodb二索索引包含了主鍵存儲(chǔ)。

來繼續(xù)證明一下:

看到using index 吧,表示這個(gè)查詢利用索引查詢出來結(jié)果,不用讀取原表。

那么我們給造一個(gè)通過主鍵讀取數(shù)據(jù)操作:

select * from zst_t1 use index(primary);

select * from zst_t1 use index(primary);  #確認(rèn)一下。

總結(jié):

這個(gè)其實(shí)就是一個(gè)索引包含的查詢案例。 如果靜下來思考一下,也許很快就明白了。也不用這樣去查問題。

技術(shù)在于折騰,多搞搞就明白了:)。

相關(guān)文章

  • MySQL動(dòng)態(tài)字符串處理DYNAMIC_STRING

    MySQL動(dòng)態(tài)字符串處理DYNAMIC_STRING

    本文主要給大家簡(jiǎn)單講解了mysql如何使用DYNAMIC_STRING來進(jìn)行動(dòng)態(tài)字符串的保存,非常的實(shí)用,有需要的小伙伴可以參考下
    2016-10-10
  • Windows下mysql 8.0.12 安裝詳細(xì)教程

    Windows下mysql 8.0.12 安裝詳細(xì)教程

    這篇文章主要為大家詳細(xì)介紹了Windows下mysql 8.0.12 安裝詳細(xì)教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法

    mysql5.7使用binlog 恢復(fù)數(shù)據(jù)的方法

    MySQL的binlog日志是MySQL日志中非常重要的一種日志,記錄了數(shù)據(jù)庫(kù)所有的DML操作,那么怎樣通過binlog 恢復(fù)數(shù)據(jù),本文就詳細(xì)的來介紹一下
    2021-06-06
  • MySql 5.7.20安裝及data和my.ini文件的配置

    MySql 5.7.20安裝及data和my.ini文件的配置

    本文通過圖文并茂的形式給大家介紹了MySql 5.7.20安裝及data和my.ini文件的配置方法,本文給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2017-11-11
  • mysql的日期和時(shí)間函數(shù)

    mysql的日期和時(shí)間函數(shù)

    mysql的日期和時(shí)間函數(shù) 這里是一個(gè)使用日期函數(shù)的例子。
    2010-11-11
  • Mysql連接join查詢?cè)碇R(shí)點(diǎn)

    Mysql連接join查詢?cè)碇R(shí)點(diǎn)

    在本文里我們給大家整理了一篇關(guān)于Mysql連接join查詢?cè)碇R(shí)點(diǎn)文章,對(duì)此感興趣的朋友們可以學(xué)習(xí)下。
    2019-02-02
  • MySQL聚簇索引和非聚簇索引的區(qū)別詳情

    MySQL聚簇索引和非聚簇索引的區(qū)別詳情

    這篇文章主要介紹了MySQL聚簇索引和非聚簇索引的區(qū)別詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-06-06
  • CentOS7離線安裝MySQL的教程詳解

    CentOS7離線安裝MySQL的教程詳解

    這篇文章主要介紹了CentOS7離線安裝MySQL的教程,在安裝之前需要我們先刪除原有的mariadb,文中也通過命令給大家介紹了,需要的朋友跟隨小編也看看吧
    2019-07-07
  • MySQL之高可用架構(gòu)詳解

    MySQL之高可用架構(gòu)詳解

    大家好,本篇文章主要講的是MySQL之高可用架構(gòu)詳解,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Mysql臨時(shí)變量的具體使用

    Mysql臨時(shí)變量的具體使用

    本文主要介紹了Mysql臨時(shí)變量的具體使用,臨時(shí)變量有分為用戶變量和會(huì)話變量,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08

最新評(píng)論