当前位置: 首页 > news >正文

关于数据库查询速度优化

本人接手了一个关于项目没有任何文档信息的代码,代码也没有相关文档说明信息!所以在做数据库查询优化的时候不敢改动。

原因1:

老板需要我做一个首页的统计查询。明明才几十万条数据,而且我加了筛选条件为什么会这么慢,我之前接手做项目的时候,查询速度都是很快的。

 

解决思路

1:先查询数据库是什么版本的,因为数据库版本不对,底层也是不对的,或者支持语法也有一定差异。

通用版本查询(所有数据库兼容)
-- MySQL/MariaDB 专用
SELECT VERSION() AS database_version;

查看详细版本信息(MySQL 5.7+)
SHOW VARIABLES LIKE '%version%';

-- 关键输出示例:
-- version           | 8.0.33
-- version_comment   | MySQL Community Server
-- version_compile_os| Linux

 高级版本信息(含补丁号)
SELECT @@GLOBAL.version, @@GLOBAL.version_comment;

2:使用查询计划  如果 了解这个数据库  可以不用查询数据库版本号

EXPLAIN  你的语句

3: 查询索引信新

/* 查看索引统计信息(5.7特有语法) */
SELECT 
    table_name,
    index_name,
    GROUP_CONCAT(column_name ORDER BY seq_in_index) AS columns,
    index_type,
    non_unique 
FROM 
    information_schema.statistics
WHERE 
    table_schema = '数据库名'
    AND table_name IN ('表名', '表名')
GROUP BY 
    table_name, index_name, index_type, non_unique;

4:这个时候就可以选择适合自己的索引,单例或者复合

5:注意点

复合索引

因为复合索引需要遵循最佳左前缀原则,这样会导致项目的其他的查询语句失败。请结合实际情况选择。

单列索引的影响评估

✅ 正面影响

  1. 对当前查询有帮助

    • 即使单独创建statuscreate_time索引,也能部分改善性能

    • 例如:ALTER TABLE listcall_order ADD INDEX idx_status (status)

  2. 不会破坏现有查询

    • 单列索引不会改变现有复合索引的最左前缀匹配规则

    • 其他查询可以继续使用原有的索引策略

  3. 灵活组合

    • 可以按需创建多个单列索引,查询优化器可能使用"索引合并"(index_merge)

❌ 潜在负面影响

  1. 写入性能下降

    • 每新增一个索引,INSERT/UPDATE/DELETE操作会变慢(需要维护更多索引结构)

    • 影响程度:通常<5%的性能下降(除非极高并发写入场景)

  2. 存储空间增加

    • 每个单列索引约占原表10-15%的额外空间

    • 对大型表可能有显著影响

  3. 优化器选择困难

    • 多个单列索引可能导致优化器选择次优执行计划

    • 可能需要使用FORCE INDEX提示

http://www.xdnf.cn/news/379549.html

相关文章:

  • vue3使用tailwindcss报错问题
  • C.循环函数基础
  • 远程调试---在电脑上devtools调试运行在手机上的应用
  • PyTorch API 3 - mps、xpu、backends、导出
  • 6.秒杀优化
  • 更换内存条会影响电脑的IP地址吗?——全面解析
  • A2A大模型协议及Java示例
  • 以影像为笔,劳润智在世界舞台上书写艺术之路
  • 不同句子切割(文本分段 / chunking)工具或库 各自采用的策略和目标对比和分析
  • OLE(对象链接与嵌入)剪贴板内容插入到 CAD 图形中——CAD c# 二次开发
  • 非阻塞式IO-Java NIO
  • TCP Socket编程
  • 分布式锁原理
  • Linux 信号终篇(总结)
  • OpenAI API JSON 格式指南与json_repair错误修复
  • 深入理解卷积神经网络的输入层:数据的起点与预处理核心
  • [Pandas]数据处理
  • MySQL 从入门到精通(六):视图全面详解 —— 虚拟表的灵活运用
  • PyTorch量化感知训练技术:模型压缩与高精度边缘部署实践
  • TDengine 在智能制造中的核心价值
  • 工控新宠| 触想Z系列工控机C款发布,方寸机身,智控万千
  • OSPF综合实验实验报告
  • 深度学习篇---MediaPipe 及其人体姿态估计模型详解
  • 广东省省考备考(第七天5.10)—言语:片段阅读(每日一练)
  • Vue插槽(Slots)详解
  • SkyReels-V2 视频生成
  • Cadence 高速系统设计流程及工具使用三
  • 加速pip下载:永久解决网络慢问题
  • 数据集-目标检测系列- 冥想 检测数据集 close_eye>> DataBall
  • AI实战笔记(1)AI 的 6 大核心方向 + 学习阶段路径