You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL InnoDB简单SELECT查询耗时0.2秒,如何优化提速?

MySQL查询提速方案
  • 给online_users_count列添加二级索引,这是性价比最高的优化方案
    你的查询慢的核心原因是没有对应索引,执行时会扫描全表1.3G的数据。添加索引后查询可以直接走索引统计,不需要回表也不需要全表扫描,执行耗时通常可以降到毫秒级。执行的SQL命令如下:
    CREATE INDEX idx_room_lesson_online_users_count ON room_lesson(online_users_count);
    
    注:如果是在线生产环境执行加索引操作,建议使用在线DDL避免锁表影响业务,MySQL 5.6及以上版本默认支持在线加索引
  • 如果该查询是高频的统计类需求,可额外维护汇总表
    如果你需要频繁统计不同online_users_count对应的行数,可以新增一张专门的统计汇总表,通过定时任务或者数据库触发器实时更新每个online_users_count对应的行数量,查询时直接读取汇总表即可,响应速度可以达到微秒级。
  • 调整数据库缓存配置(辅助优化)
    可以适当调大innodb_buffer_pool_size参数,建议设置为物理内存的50%~70%,让更多的表数据缓存到内存中,减少磁盘IO消耗,也能在一定程度上提升查询速度,不过该方案提升幅度远低于加索引。
  • 特殊场景可做表分区
    如果online_users_count的可选值非常少(比如只有0~5共6个取值),索引选择性差的情况下,可以对room_lesson表按online_users_count做range或者hash分区,查询时只会扫描对应分区的数据,也能大幅降低扫描范围提升速度。

内容的提问来源于stack exchange,提问作者lolcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:57:04