国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 幫助中心 > 正文

Innodb表select查詢順序

2024-07-09 22:48:02
字體:
來源:轉載
供稿:網友

今天知數堂一個學生反饋說在優化課中老師講Innodb是以主鍵排序存儲,讀取的時間以主鍵為順序讀取,但發現個例外,如下:

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;'

寫入數據:

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);

執行查詢:

select * from zst_t1;

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

使用innodb_ruby這個工具查看一下存儲結構什么樣

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

再來看一下該表的索引:

看到這里應該明白了怎么會事了吧,原來這個查詢是走的索引覆蓋,沒有在進行回表讀取原數據。另外,也在此說明,Innodb二索索引包含了主鍵存儲。

來繼續證明一下:

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

那么我們給造一個通過主鍵讀取數據操作:

select * from zst_t1 use index(primary);

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

總結:

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

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

您可能感興趣的文章:

可以改善mysql性能的InnoDB配置參數MySQL Innodb表導致死鎖日志情況分析與歸納mysql更改引擎(InnoDB,MyISAM)的方法MySQL不支持InnoDB的解決方法Mysql啟動中 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes 的問題淺談MySQL存儲引擎選擇 InnoDB與MyISAM的優缺點分析Xtrabackup使用指南 InnoDB數據備份工具MYSQL無法啟動提示: Default storage engine (InnoDB) is not available的解決方法MySQL數據庫INNODB表損壞修復處理過程分享
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临洮县| 定州市| 兰考县| 卓资县| 江孜县| 息烽县| 彰化县| 福海县| 岳池县| 葵青区| 宁南县| 铅山县| 苏尼特左旗| 满城县| 邢台市| 营山县| 礼泉县| 鄂州市| 咸阳市| 柳江县| 西畴县| 尼玛县| 年辖:市辖区| 建宁县| 汪清县| 七台河市| 启东市| 定兴县| 荆州市| 慈溪市| 湘潭县| 自治县| 申扎县| 定边县| 亚东县| 建瓯市| 横山县| 沛县| 双城市| 醴陵市| 木兰县|