weixin_35433614 2019-10-13 15:56 采纳率: 50%
浏览 632
已采纳

mysql单表千万数据如何优化

mysql 单表一千万的数据 多对多中间表
有A,B,C三张表
A表 表结构 id,name,time,....
B表 表结构 id,name....
C表(多对多中间表)表结构 id,Aid,Atime,Bid 为了优化把A表的time也放在了C表
C表 索引,index_Aid, index_Bid, index_Bid_Atime,index_Atime
查询语句:select DISTINCT Aid from C where Bid in (.....) order by Atime desc limit 0,20
在in大量的情况下
看解释器 走的索引是 index_Bid_Atime
(Using index condition; Using temporary; Using filesort )
很慢,如果把联合索引去掉 走排序的索引很快
在in只有1,2个的情况下 走联合索引很快,在排序索引很慢。有大神有优化办法吗?

  • 写回答

3条回答 默认 最新

  • 问题咋就那么多? 2019-11-14 16:43
    关注

    针对SQL,这个级别的单表,考虑把索引整理一下,基数小的索引直接删掉,没用的索引多了反而会影响速度。

    从表结构角度出发,可以建range分区,可以参考:https://www.cnblogs.com/pejsidney/p/10074980.html

    从业务角度出发,可以建临时表存放查询结果,或者建历史表将不活跃的数据放出去。

    从技术角度出发,可以加es搜索引擎。

    具体看你有哪些权利,根据你自己被允许的修改范围去操作。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!