国产探花免费观看_亚洲丰满少妇自慰呻吟_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表損壞修復處理過程分享
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 商水县| 郸城县| 集贤县| 密山市| 长宁县| 建德市| 牟定县| 张家港市| 潢川县| 肇东市| 兴业县| 建平县| 友谊县| 凤翔县| 芦溪县| 九江县| 陇西县| 营山县| 克东县| 牡丹江市| 富裕县| 西林县| 全州县| 定州市| 邛崃市| 吉木萨尔县| 潼关县| 盈江县| 类乌齐县| 安多县| 剑阁县| 清涧县| 科技| 霞浦县| 台安县| 新野县| 宁乡县| 筠连县| 新田县| 拉孜县| 慈利县|