亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

mysql - 這條sql可以怎么優化,求幫助

瀏覽:156日期:2022-06-19 16:26:08

問題描述

select count(*) from trade where shippingtype <> 'free' and status in ('TRADE_FINISHED','WAIT_SELLER_SEND_GOODS') and tosellerreachgoods = 0 and consigntime <1470110400000 and ( endtime >=1469980800000 or endtime is null ) and created >=1469980800000 and created <=1470067200000 and user = 'xxxxxxxxxxxxxxxx' ;

idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra1SIMPLEtraderangetrade__user,trade_user_created,trade_user_buyernick,trade__status_created,trade_user_statustrade_user_created108NULL588Using index condition; Using where

問題解答

回答1:

盡管從explain結果看這個查詢沒什么特別問題,但以下幾點可以考慮一下。1、shippingtype和status看起來是個枚舉值,可以用tinyint代替(數值查詢比字符串查詢速度要快);2、endtime設為NOT NULL, 把原來的null值用一個特殊值(-1或0)代替,NULL值會影響索引的效率;3、可以的話,用user_id代替user;

個人YY的優化:

SELECT count(*) FROM trade WHERE status IN ('TRADE_FINISHED', 'WAIT_SELLER_SEND_GOODS') AND shippingtype <> 'free'AND tosellerreachgoods = 0 AND user = 'xxxxxxxxxxxxxxxx'AND consigntime < 1470110400000 AND created BETWEEN 1469980800000 AND 1470067200000AND ( endtime >= 1469980800000 OR endtime IS NULL );

前面4個條件沒什么好說的,主要是后面三個條件,分別是consigntime、created和endtime,根據篩選范圍從小到大來排列(具體要看你的表里這三個字段的范圍段)。

部分建議是基于你能修改表結構的基礎上提出的,如果沒有權限的話那就忽略吧。

參考資料:http://tech.meituan.com/mysql...

回答2:

Strong

回答3:

那個 不等于 影響性能

回答4:

從explain上來看沒什么問題

相關文章:
主站蜘蛛池模板: 亚洲欧美日韩国产精品一区 | 欧美一区二区日韩一区二区 | 久久99国产亚洲精品 | 国产精品亚洲精品日韩已方 | 日韩亚洲欧美理论片 | 久草网在线观看 | 男女免费视频网站 | 国产精品黄页网站在线播放免费 | 精品成人免费一区二区在线播放 | 青青影院一区二区免费视频 | 午夜刺激爽爽视频免费观看 | 萝控精品福利视频一区 | 亚洲欧美男人天堂 | 亚洲毛片一级巨乳 | 国产高清国产专区国产精品 | 99草精品视频| 欧美激情精品久久久久久久九九九 | 在线亚洲精品中文字幕美乳 | 91精品国产91久久久久青草 | 亚洲高清二区 | 亚洲欧美视频二区 | a毛片在线观看 | 韩国免费特一级毛片 | 久草视频在线网 | 亚洲欧洲一区二区三区在线 | 91欧美激情一区二区三区成人 | 男女男精品视频网站 | 亚洲精品一区二区三区四区 | a级毛片毛片免费观看永久 a级毛片毛片免费很很综合 | 91色综合综合热五月激情 | 亚洲成人天堂 | 国产一区二区精品 | 午夜宅宅宅影院在线观看 | 欧美毛片aaa激情 | 在线免费视频 | 国产片在线观看狂喷潮bt天堂 | 日本乱理伦中文三区 | 国产伦精品一区三区视频 | 日韩中文字幕免费在线观看 | 国产成人亚洲精品91专区高清 | 欧美成人一级毛片 |