技术咨询: Mysql 查询优化

2018-12-24 08:08:12 +08:00
 dielianxiang

Mysql 一张表有 1400W 条数据,加了索引,查询一下也需要 2-5S。除了分库分表 有没有其他的好办法?

最重要的是我还需要 Group 里面的数据进行 Sum 操作,这时候就更慢了..

求大神赐教。

4818 次点击
所在节点    数据库
54 条回复
lqw3030
2018-12-24 08:19:23 +08:00
分表
Ehco1996
2018-12-24 08:27:00 +08:00
加 cache/换 nosql
tt67wq
2018-12-24 08:32:15 +08:00
explain 看下咯 如果索引都用上了还不行 那就要分片了
Vegetable
2018-12-24 08:45:12 +08:00
索引合适的话不至于这么慢吧,我觉得还是先尝试优化索引
sagaxu
2018-12-24 08:50:21 +08:00
1400 万就要分库分表,怕是对分库分表有什么误会
SoulSleep
2018-12-24 08:53:14 +08:00
1400w 2-5s 如果还走索引了,优化下 mysql 配置吧...
先 explain 看走不走索引,再看看服务器性能问题。
jowan
2018-12-24 08:59:40 +08:00
1400W 还不至于分表分库
/t/472324
我之前的 650W 联合索引加 SUM 统计才 900ms
现在 3000W 数据了也是这个速度
建议检查下查询用到的索引和服务器性能
noahzh
2018-12-24 09:00:43 +08:00
走索引不代表就快,你 1400 万的数据,如果索引设计不好,索引出来数据有 1300 万,走不走索引都没有意义了.
还是那句话先把表结构贴出来再说.
showecho
2018-12-24 09:03:05 +08:00
如果是 = 查询,加了索引应该秒出结果吧;
如果是 like 就会比较慢了;
个人感觉优化索引+服务器性能,用了很多服务器了,2 核和 4 核差别还是挺明显的
turan12
2018-12-24 09:04:14 +08:00
楼主你把 sql 语句和表结构贴出来看看
Allianzcortex
2018-12-24 09:10:32 +08:00
@Ehco1996 要优化的不是 web 的响应时间是数据库的查询时间。换 nosql 意义也不大,用不到切换 RDBMS 的程度
xe2vxe2v
2018-12-24 09:19:49 +08:00
加索引,和用索引还是有区别的,建议用 explain 命令查看 SQL 执行过程的结果分析
weizhen199
2018-12-24 09:36:56 +08:00
能不能具体点,如果 1400w 差 1 条走索引还要 2s 那肯定有问题的
dielianxiang
2018-12-24 09:46:16 +08:00
@weizhen199 已经贴上去 求指教
dielianxiang
2018-12-24 09:46:34 +08:00
@turan12 贴了
mooncakejs
2018-12-24 09:46:54 +08:00
group by sum 看起来 优化不了了,再怎么样也不会秒出的。 修改下结构吧,插入时计算触发器之类的,不然就定时汇总。
mineqiqi
2018-12-24 09:47:20 +08:00
DATE_FORMAT(a.created_at,"%m-%d") as date 不要格式化数据库字段,放到程序中处理,

created_at>="'+ start +'" and created_at<="' + end start 和 end 格式化成数据库中 created_at 的存储格式多半是 datetime,给 created_at 加索引
dielianxiang
2018-12-24 09:47:49 +08:00
@showecho 用的是 RDS 一核 2G 的
septet
2018-12-24 09:47:50 +08:00
explain 分析下
mooncakejs
2018-12-24 09:48:36 +08:00
也可以试试把 group by 做成虚拟列

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/520314

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX