mysql语优化请教
如题
PHP 版本:7.4.11
表结构
| id | network_id | shipment_status|
| ———— | ———— | ————– |
| 1 | 5 | 0 |
| 2 | 5 | 1 |
数据有200W条
业务需要统计总条数、shipment_status等于0的总数、shipment_status等于1的总数
现在的sql语句如下
SELECT
count(*) AS num,
count( CASE WHEN shipment_status = 0 THEN shipment_status END ) AS dist,
count( CASE WHEN shipment_status = 1 THEN shipment_status END ) AS sign,
network_id AS NETWORKID
FROM
wuliu_post_orders
WHERE
network_id IN ( '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16' )
GROUP BY
NETWORKID
ORDER BY
NETWORKID ASC
查询的耗时为34.56s,请问该sql应该如何优化?
建索引 请问看总数 为什么要orderby??
30多秒? 是不是写错了哦,可以建个联合索引(network_id,shipment_status)
发一下 explain 的截图
要是我就写3个sql查,又不是不能用
@zhengfan
建立联合索引(
network_id
,shipment_status
)network_id
字段跟shipment_status
建立联合索引 查询超过三秒你加 110 这个 wx 号来骂我