第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

百萬級mysql數(shù)據(jù)庫使用count、group、order查詢非常慢,怎么優(yōu)化

百萬級mysql數(shù)據(jù)庫使用count、group、order查詢非常慢,怎么優(yōu)化

PHP
眼眸繁星 2019-03-01 20:18:03
數(shù)據(jù)庫目前有100萬數(shù)據(jù)(運行了半個月左右)下面這句運行要6秒(單單where的結(jié)果有100萬),user_id和time都加索引了SELECT user_id,count(*) as count from prize_numbers where user_id > 0 and time > 1545972485 GROUP BYuser_id ORDER BY count desc下面這句也是一樣的,要6秒SELECT user_id,count(*) as count from (    SELECT user_id from prize_numbers where user_id > 0 and time > 1545972485)t GROUP BY user_id ORDER BY count desc該怎么優(yōu)化 ?這是表結(jié)構(gòu)
查看完整描述

2 回答

?
慕田峪9158850

TA貢獻1794條經(jīng)驗 獲得超7個贊

找到問題所在了,又學(xué)到一個新知識。

SELECT user_id,count(*) as count from prize_numbers where user_id > 0 and time > 1545972485 GROUP BYuser_id ORDER BY count desc

如題,查詢要6秒,user_id,time都設(shè)置了索引。
多次嘗試后發(fā)現(xiàn)以下2句查詢速度非常快,在1秒以內(nèi)。

SELECT user_id,count(*) as count from prize_numbers where time > 1545972485 GROUP BY user_id ORDER BYcount desc
SELECT user_id,count(*) as count from prize_numbers where user_id > 0 GROUP BY user_id ORDER BY countdesc

搜了好些資料,看到了一個叫聚合索引的東西,嘗試了下,速度一下子就快了。語句如下:

alter table 表名 add index 索引名 (加索引的列1,加索引的列2)

例如我的:

alter table prize_numbers add index union_user_id_time (user_id, time)

聚合索引要加哪些字段,我粗暴的理解為把where語句后面的條件字段都加到一個聚合索引中。


查看完整回答
反對 回復(fù) 2019-03-01
?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

SELECT user_id,count(id) as count from prize_numbers where user_id > 0 and time > 1545972485 GROUP BYuser_id ORDER BY count desc


查看完整回答
反對 回復(fù) 2019-03-01
  • 2 回答
  • 1 關(guān)注
  • 6097 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號