数据库用的是 mysql8.0 ,explain 如下
场景:带关键词分页查询某个店铺的订单,截图里 explain 的 SQL 是统计符合要求的订单总数,
表的关联关系如下:
订单表 o 会关联订单明细表 oi ,
订单明细表 oi 会关联商品表 p ,
订单表 o 会在非注册用户下单以及注册用户下单情况下,根据 account_id 是否有值关联到客户表 c 的不同字段,因为这个原因,不想写成 or 查询,这个会导致客户表 c 全表扫描,所以把 SQL 拆成了 union 的形式
订单表 o 会关联到收货地址表 a
从监控上看,这个 SQL 大概耗时在 600~700ms 左右,这个店铺的订单总数大概在 5k 左右,想问下有什么办法再优化这个 SQL 到 500ms 以下么?
感谢。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.