有一张表,500W条记录,4个字段如下:idintprimarykeyipintclass_avarcharclass_bvarchar需要执行的查询语句结果是:SELECTclass_a,class_b,count(DISTINCTip)FROMtableGROUPBYclass_a,class_b目前按照上述语句执行,性能几乎为零。求大神给点优化意见。ip,class_a,class_b都加过索引了。
2 回答
慕桂英4014372
TA贡献1871条经验 获得超13个赞
ucouldaddcommonlyindex,eg:"alerttabledbname.tableaddindex(classa,classb)",andyoucanuseexplaintosynatx.
慕哥6287543
TA贡献1831条经验 获得超10个赞
针对你的sql,按我的理解,建复合索引(classa,classb,ip),explain应该可以看到Usingindexforgroup-by,这样就可以走覆盖索引.否则...还不如直接Usingtemporary;Usingfilesort
添加回答
举报
0/150
提交
取消