<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      mysql強制使用索引

      轉載來源:http://www.rzrgm.cn/lizhaoyao/p/7691407.html

      在公司后臺某模塊功能記錄日志中有一個搜索功能,通過前段時間的產品使用時間區間進行搜索反饋有些卡頓,我發現這個搜索功能比較慢,要3秒左右才能出來,就決定對這里做一下優化。

      通過分析代碼和SQL發現最核心的問題在于一個區間查詢耗時太長,耗時2秒多,所以我決定看看這里能不能優化,其中核心SQL為

      SELECT  * FROM XXX_log WHERE (`ctime` BETWEEN '2017-09-11 09:34:13'  AND '2017-10-11 09:34:13')
      and     id > 27851
      AND column1 = 'xxx'
      AND (column2 = 'null' OR LENGTH(column2) > 91)
      ORDER BY  id DESC LIMIT 0, 30
      

      這個查詢是一個簡單查詢,沒有聯表,就是單表的limit分頁查詢,外加一個時間區間和字段搜索,我通過SQL分析 explain 發現并未走索引,掃描區間也很大,由于該表擁有接近100萬的記錄,查詢的掃描區間接近50萬,我感覺這樣肯定是效率不高的。

      然后查詢了一下數據,發現耗時確實在2.6秒左右,我起初的設想是,column2字段查詢肯定是沒法改了 ,畢竟那涉及到以前的業務,該字段這樣搜索查詢確實有違常理,但是既然之前的功能已經這樣設計了,現在去做調整,反而有可能有問題,那么就只有在 id ctime column1下手了,id它寫死了,定了某條記錄開始進行查詢,我猜測可能之前的數據是測試數據或者是廢棄數據,那既然有個標尺,就不去動它,column1是固定的查詢值,這樣也沒法改,這樣的固定值在數據行中差異不明顯,加索引效果也不大,然后是ctime了,唯一能動文章的也只有它了。

      然后我好好分析了一下這個模塊要實現的功能邏輯,就是查詢這段時間內符合要求的數據,這段時間,很明顯是一個月,能不能設定這個查詢區間只能查一個星期呢?

      我改為一周內的時間區間查詢,肯定能降低查詢的查詢區間啊,然而令人遺憾的是,這個降低查詢區間間隔,并沒有多大效果,最后無奈,我給ctime添加了一個 normal index btree索引,加了索引后,我本以為一切都會好起來,誰知,explain后效果還是那樣!
      image
      可能用到的索引keys 主鍵 ctime ,然而呢 查詢區間還是接近45萬,效果并不明顯,查詢時間也還是2秒多,這可讓我犯難了,一時束手無策,思考許久,突然想到這感覺是索引沒有真正生效導致的,那么能不能強制告訴mysql使用某個索引了,讓他主動是走某個索引,然后我查詢了資料 找到了force index(強制要走的那個索引) ,我馬上就試了一下

      SELECT  * FROM XXX_log **force index(ctime)** WHERE (`ctime` BETWEEN '2017-09-11 09:34:13'  AND '2017-10-11 09:34:13')
      and     id > 27851
      AND column1 = 'xxx'
      AND (column2 = 'null' OR LENGTH(column2) > 91)
      ORDER BY  id DESC LIMIT 0, 30
      

      果然 explain分析之后 使用了ctime索引
      image
      而且查詢區間降低到3萬多了,這個效果太明顯了,耗時降低到0.2秒左右,然后這個功能馬上從3秒才能打開降低到0.3秒就能打開了,這個優化效果令我非常滿意。

      在和運維討論該表的數據時,運維提供方案說,看到該表數據量龐大 接近100萬,并且時間很多是2015年 2016年的,他提出可以轉移2015年 2016年的數據,我查看了一下,2015年和2016年的數據合計起來有70多萬了,占據了絕大部分,如果轉移的話,確實有利于我們查詢啊,比對啊,更新啊之類的,因為這是一張日志表,在某個期間具有時效性,畢竟大部分時候今年不會再看去年前年的查詢數據了,所以我覺得這種做法也有依據,也合理,恰逢同事請假休息,此事等他回來再做討論。

      posted @ 2025-08-28 15:21  黃多魚  閱讀(8)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 一级做a爰片在线播放| 奇米四色7777中文字幕| 亚洲精品国产精品乱码不卡| 香蕉EEWW99国产精选免费 | 久久精品亚洲国产综合色| 色狠狠色婷婷丁香五月| 国产线播放免费人成视频播放| 国产人妻高清国产拍精品| 日韩中文字幕高清有码| 国产高清在线男人的天堂| 图片区小说区av区| 国产成人拍国产亚洲精品| 欧美人与动zozo在线播放| 日本狂喷奶水在线播放212| 亚洲男女羞羞无遮挡久久丫| 亚洲午夜福利网在线观看| 国产成熟女人性满足视频| 18禁视频一区二区三区| 99国产欧美另类久久久精品| 精品人妻av中文字幕乱| 国产99视频精品免费专区| 成年女人免费碰碰视频| 手机看片福利一区二区三区| 国产色无码专区在线观看| 亚洲av日韩av永久无码电影| 虎白女粉嫩尤物福利视频| 国产一区二区在线影院| 视频一区视频二区视频三| 亚洲精品无码日韩国产不卡av| 在线午夜精品自拍小视频| 亚洲v欧美v日韩v国产v| 欧美成人免费一区二区三区视频| 亚洲精品成a人在线观看| 亚洲日韩久热中文字幕| 在国产线视频A在线视频| 中文成人无字幕乱码精品区| 男女18禁啪啪无遮挡激烈网站| 国模在线视频一区二区三区| 欧美性猛交xxxx黑人| 国产精品久久久久7777| 久久久欧美国产精品人妻噜噜|