日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

 

假設有表tb_sku,其表結構如下。

 

 

表中大約有200w條記錄,執行如下的sql 語句大約 4.36s 返回數據

select count(*) from tb_sku;

 

 

 

接著我們使用 對其進行分頁查詢:

select * from tb_sku limit 0,10;

limit 語句 其中0 代表起始位置,10 為每頁返回的數據數量。

 

 

如上圖所示,很快就返回了查詢結果。

接著我們再使用SQL 語句

select * from tb_sku limit 10,10;

語句從記錄位置10的位置開始再往下返回10 條記錄,也就是第二頁的信息。其返回時間也是比較快。

然后,我們加大起始位置 到100w如下,

select * from tb_sku limit 1000000,10;

 

 

 

此時返回時間需要0.74 s,這說明了使用limit 對大數據量的表進行分頁,位置越靠后效率越低。拿上面的例子來說,limit 會先對 100w 的數據進行排序,然后再返回10 條數據,而且僅僅返回100w 到 100w 零10條 的記錄,其他查詢的記錄都會丟棄掉,這種做法查詢排序的代價非常大。

由此我們需要對大數據量表進行limit 操作進行優化,官方給出的方案是通過覆蓋索引和子查詢的方式進行優化

根據這個思路首先對id 進行查詢

select id from tb_sku order by id limit 1000000,10;

 

 

 

查詢結果就只需要0.34s 比之前的0.74s要快多了。究其原因,因為直接返回id的信息,并沒有進行回表操作,所以速度別select * 要快

由于我們需要獲得select * 的信息,也就是tb_user 所有字段的信息,因此需要將上面的查詢結果和tb_user 進行jion 操作。

select s.* from tb_sku s ,(select id from tb_sku order by id limit 1000000,10 ) t where s.id = t.id;

 

 

 

這里通過查詢id 和子查詢 的方式將查詢結果縮短為 0.38s,比之前直接通過 select * 的方式要縮短一倍的查詢時間。

分享到:
標簽:MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定