weixin_35433614 2019-10-13 07:56 采纳率: 33.3%
浏览 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 08:43
    关注

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

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

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

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

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

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

报告相同问题?

悬赏问题

  • ¥15 VAE代码如何画混淆矩阵
  • ¥15 求遗传算法GAMS代码
  • ¥15 雄安新区高光谱数据集的下载网址打不开
  • ¥66 android运行时native和graphics内存详细信息获取
  • ¥100 求一个c#通过CH341读取数据的Demo,能够读取指定地址值的功能
  • ¥15 rk3566 Android11 USB摄像头 微信
  • ¥15 torch框架下的强化学习DQN训练奖励值浮动过低,希望指导如何调整
  • ¥35 西门子博图v16安装密钥提示CryptAcquireContext MS_DEF_PROV Error of containger opening
  • ¥15 mes系统扫码追溯功能
  • ¥40 selenium访问信用中国
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部