家明君
2019-01-04 11:31
采纳率: 76.9%
浏览 1.5k

Mysql 数据库 单表查询越来越慢,总数300w+

1.有唯一索引
2.查询总条数,耗时基本超过2min 以上
请教各位前辈大佬指点迷津,排除问题的方向,寻找解决方式。
原因可能是索引顺序引起的, 我修改了两个字段的顺序,查询时间明显改善
如下图:
图片说明
EXPLAIN 此表如下:
图片说明图片说明图片说明
查询时间为 : 0.6~2s+
由上查询很慢,可能是索引引起,但我无法确认与优化。

PS:问题已经解决,mysql 默认配置读写之类的设置过小。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 瓦史托德 2019-01-04 18:19
    已采纳

    count已经自己优化了,如果还慢只能你自己sql语句优化了
    比如没有where直接max(id),有where 索引列再用count
    再看看硬盘网络压力等等问题

    点赞 打赏 评论
  • hello.. 2019-01-04 11:40

    你通过explain 查看下执行计划确定是什么地方慢,才好优化

    点赞 打赏 评论
  • qq_27462667 2019-01-04 11:42

    查看sql执行计划,是不是硬件设备不行呢

    点赞 打赏 评论
  • 潭溪Zerg 2019-01-04 13:35

    很难想象几十万数据,count要这么久啊
    你试下直接select count(unique_key_id) from t;
    看时间能不能减少,如果用上了索引,应该是非常快的

    点赞 打赏 评论
  • 可爱的小书包 2019-01-04 16:13

    使用Select count(1) from xx试试看

    点赞 打赏 评论
  • cs_tl 2019-01-04 16:50

    在《高性能mysql》一书中有提到,
    当有多个索引时,mysql会对 SELECT COUNT(*) 进行优化,使用最适合的索引进行查询
    楼主的表中只有一个复合索引?

    点赞 打赏 评论

相关推荐 更多相似问题