濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧

Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧

熱門(mén)標(biāo)簽:谷歌地圖標(biāo)注位置圖解 清遠(yuǎn)申請(qǐng)400電話(huà) 如何選擇優(yōu)質(zhì)的外呼系統(tǒng) 桂林云電銷(xiāo)機(jī)器人收費(fèi) 沈陽(yáng)智能外呼系統(tǒng)供應(yīng)商 南通電銷(xiāo)外呼系統(tǒng)哪家強(qiáng) 手機(jī)外呼系統(tǒng)違法嗎 東莞外呼企業(yè)管理系統(tǒng) 地圖簡(jiǎn)圖標(biāo)注

普通分頁(yè)

   數(shù)據(jù)分頁(yè)在網(wǎng)頁(yè)中十分多見(jiàn),分頁(yè)一般都是limit start,offset,然后根據(jù)頁(yè)碼page計(jì)算start

select * from user limit 1,20

   這種分頁(yè)在幾十萬(wàn)的時(shí)候分頁(yè)效率就會(huì)比較低了,MySQL需要從頭開(kāi)始一直往后計(jì)算,這樣大大影響效率

SELECT * from user limit 100001,20; //time 0.151s
explain SELECT * from user limit 100001,20;

  我們可以用explain分析下語(yǔ)句,沒(méi)有用到任何索引,MySQL執(zhí)行的行數(shù)是16W+,于是我們可以想用到索引去實(shí)現(xiàn)分頁(yè)

   優(yōu)化分頁(yè)

   使用主鍵索引來(lái)優(yōu)化數(shù)據(jù)分頁(yè)

select * from user where id>(select id from user where id>=100000 limit 1) limit 20; //time 0.003s

  使用explain分析語(yǔ)句,MySQL這次掃描的行數(shù)是8W+,時(shí)間也大大縮短。

 explain select * from user where id>(select id from user where id>=100000 limit 1) limit 20; 

     總結(jié)

  在數(shù)據(jù)量比較大的時(shí)候,我們盡量去利用索引來(lái)優(yōu)化語(yǔ)句。上面的優(yōu)化方法如果id不是主鍵索引,查詢(xún)效率比第一種還要低點(diǎn)。我們可以先使用explain來(lái)分析語(yǔ)句,查看語(yǔ)句的執(zhí)行順序和執(zhí)行性能。

補(bǔ)充:mysql中百萬(wàn)級(jí)別分頁(yè)查詢(xún)性能優(yōu)化

前提條件:

1.表的唯一索引

2.百萬(wàn)級(jí)數(shù)據(jù)

SQL語(yǔ)句:

select
     c.*
     FROM
  (
  SELECT
   a.logid
  FROM
   tableA a
  where 1 = 1
     #if phone?exists phone!=""> 
      AND a.phone like "%":phone"%" 
     /#if>
   ORDER BY
    a.create_time DESC
   limit :startIndex,:maxCount
  ) b,tableA c
  where 1 = 1 AND b.logid = c.logid

其中:

1:startIndex:表示查找數(shù)據(jù)的開(kāi)始位置

2:maxCount:表示每頁(yè)顯示數(shù)據(jù)個(gè)數(shù)

3:a.create_time DESC:降序排列,需要在create_time建立索引

4:limiit放在里面,而不要放在查詢(xún)的外面,這樣效率提升很多

5:logid:唯一索引

您可能感興趣的文章:
  • 如何優(yōu)化Mysql千萬(wàn)級(jí)快速分頁(yè)
  • MySQL 百萬(wàn)級(jí)分頁(yè)優(yōu)化(Mysql千萬(wàn)級(jí)快速分頁(yè))
  • Mysql limit 優(yōu)化,百萬(wàn)至千萬(wàn)級(jí)快速分頁(yè) 復(fù)合索引的引用并應(yīng)用于輕量級(jí)框架
  • Mysql limit 優(yōu)化,百萬(wàn)至千萬(wàn)級(jí)快速分頁(yè) 復(fù)合索引的引用并應(yīng)用于輕量級(jí)框架
  • mysql limit分頁(yè)優(yōu)化方法分享
  • mysql 分頁(yè)優(yōu)化解析

標(biāo)簽:內(nèi)蒙古 湖州 成都 常德 臨沂 重慶 天津 貴州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧》,本文關(guān)鍵詞  Mysql,百萬(wàn),級(jí),分頁(yè),優(yōu)化,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Mysql百萬(wàn)級(jí)分頁(yè)優(yōu)化技巧的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    乌苏市| 吉首市| 武山县| 格尔木市| 夹江县| 河北区| 兖州市| 紫云| 广汉市| 白山市| 夏河县| 大邑县| 即墨市| 乌恰县| 来宾市| 镶黄旗| 利川市| 皮山县| 乌什县| 肃宁县| 垣曲县| 安图县| 手游| 翁牛特旗| 临猗县| 舞钢市| 桐城市| 海淀区| 清水县| 北京市| 正镶白旗| 利川市| 保定市| 板桥市| 华池县| 义马市| 扶风县| 阳春市| 武威市| 来安县| 田东县|