关于数据库查询速度优化

news2025/5/13 11:24:30

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

原因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.coloradmin.cn/o/2373630.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

巡检机器人数据处理技术的创新与实践

摘要 随着科技的飞速发展&#xff0c;巡检机器人在各行业中逐渐取代人工巡检&#xff0c;展现出高效、精准、安全等显著优势。当前&#xff0c;巡检机器人已从单纯的数据采集阶段迈向对采集数据进行深度分析的新阶段。本文探讨了巡检机器人替代人工巡检的现状及优势&#xff0c…

国产linux系统(银河麒麟,统信uos)使用 PageOffice 在线打开Word文件,并用前端对话框实现填空填表

不管是政府机关、公司企业&#xff0c;还是金融行业、教育行业等单位&#xff0c;在办公过程中都经常需要填写各种文书和表格&#xff0c;比如通知、报告、登记表、计划表、申请表等。这些文书和表格往往是用Word文件制作的模板&#xff0c;比方说一个通知模板中经常会有“关于…

RabbitMQ-高级特性1

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言消息确认机制介绍手动确认方法代码前言代码编写消息确认机制的演示自动确认automanual 持久化介绍交换机持久化队列持久化消息持久化 持久化代码持久化代码演示…

青藏高原东北部祁连山地区250m分辨率多年冻土空间分带指数图(2023)

时间分辨率&#xff1a;10年 < x < 100年空间分辨率&#xff1a;100m - 1km共享方式&#xff1a;开放获取数据大小&#xff1a;24.38 MB数据时间范围&#xff1a;近50年来元数据更新时间&#xff1a;2023-10-08 数据集摘要 多年冻土目前正在经历大规模的退化&#xff0c…

论文分享➲ arXiv2025 | TTRL: Test-Time Reinforcement Learning

TTRL: Test-Time Reinforcement Learning TTRL&#xff1a;测试时强化学习 https://github.com/PRIME-RL/TTRL &#x1f4d6;导读&#xff1a;本篇博客有&#x1f9a5;精读版、&#x1f407;速读版及&#x1f914;思考三部分&#xff1b;精读版是全文的翻译&#xff0c;篇幅较…

【计算机网络-传输层】传输层协议-TCP核心机制与可靠性保障

&#x1f4da; 博主的专栏 &#x1f427; Linux | &#x1f5a5;️ C | &#x1f4ca; 数据结构 | &#x1f4a1;C 算法 | &#x1f152; C 语言 | &#x1f310; 计算机网络 上篇文章&#xff1a;传输层协议-UDP 下篇文章&#xff1a; 网络层 我们的讲解顺序是&…

项目管理从专家到小白

敏捷开发 Scrum 符合敏捷开发原则的一种典型且在全球使用最为广泛的框架。 三个角色 产品负责人Product Ower&#xff1a;专注于了解业务、客户和市场要求&#xff0c;然后相应地确定工程团队需要完成的工作的优先顺序。 敏捷教练Scrum Master&#xff1a;确保 Scrum 流程顺…

InnoDB结构与表空间文件页的详解

目录 1.InnoDB的概览 表空间文件在哪里&#xff1f; 为什么要设计成内存结构和磁盘结构&#xff1f; 表空间与表空间文件关系&#xff1f; 用户数据如何在表空间文件存储&#xff1f; 2.页 如何设置页的大小&#xff1f; 页的结构及在表空间的位置&#xff1f; 页头包…

世界无人机大会将至,大势智慧以“AI+实景三维”赋能低空经济

近日&#xff0c;“2025第九届世界无人机大会暨国际低空经济与无人系统博览会和第十届深圳国际无人机展览会”组委会召开新闻发布会&#xff0c;宣布本届大会主题为“步入低空经济新时代”&#xff0c;将于5月23-25日在深圳会展中心&#xff08;福田&#xff09;举行&#xff0…

AI 驱动数据库交互技术路线详解:角色、提示词工程与输入输出分析

引言 在人工智能与数据库深度融合的趋势下&#xff0c;理解AI在数据库交互流程中的具体角色、提示词工程的运用以及各步骤的输入输出情况&#xff0c;对于把握这一先进技术路线至关重要。本文将对其展开详细剖析。 一、AI 在数据库交互流程中的角色 &#xff08;一&#xff0…

stm32错误记录

1.使用LCD屏幕时&#xff0c;只用st-link时&#xff0c;亮度很暗&#xff0c;需要用usb数据线额外给屏幕供电&#xff1b; 2.移植freertos到f103c8t6芯片时&#xff0c;工程没有错误&#xff0c;但单片机没有反应&#xff1b; 需要将堆的大小改成10*1024&#xff1b; 3.在找已经…

一个电平转换电路导致MCU/FPGA通讯波形失真的原因分析

文章目录 前言一、问题描述二、原因分析三、 仿真分析四、 尝试的解决方案总结前言 一、问题描述 一个电平转换电路,800kHz的通讯速率上不去,波形失真,需要分析具体原因。输出波形如下,1码(占空比75%)低于5V,0码(占空比25%)低于4V。,严重失真。 电平转换电路很简单,M…

OpenLayers根据任意数量控制点绘制贝塞尔曲线

以下是使用OpenLayers根据任意数量控制点绘制贝塞尔曲线的完整实现方案。该方案支持三个及以上控制点&#xff0c;使用递归算法计算高阶贝塞尔曲线。 实现思路 贝塞尔曲线原理&#xff1a;使用德卡斯特里奥算法&#xff08;De Casteljau’s Algorithm&#xff09;递归计算任意…

STM32--RCC--时钟

教程 系统时钟 RCC RCC&#xff08;Reset and Clock Control&#xff09;是STM32微控制器中管理时钟和复位系统的关键外设模块&#xff0c;负责整个芯片的时钟树配置和复位控制。 RCC主要功能 时钟系统管理&#xff1a; 内部/外部时钟源选择 时钟分频/倍频配置 各外设时钟门…

Linux系统入门第十二章 --Shell编程之正则表达式

一、正则表达式 之前学习了 Shell 脚本的基础用法&#xff0c;已经可以利用条件判断、循环等语句编辑 Shell脚本。接下来我们将开始介绍一个很重要的概念-正则表达式(RegularExpression&#xff0c;RE) 1.正则表达式的定义 正则表达式又称正规表达式、常规表达式。在代码中常…

[架构之美]Spring Boot多环境5种方案实现Dev/Test/Prod环境隔离

[架构之美]Spring Boot多环境5种方案实现Dev/Test/Prod环境隔离&#xff08;十六&#xff09; 摘要&#xff1a;本文深入剖析Spring Boot多环境配置的5种实现方案&#xff0c;涵盖YAML分组配置、Maven Profile集成、Kubernetes适配等企业级实践&#xff0c;并附赠配置加密方案…

C++STL——stack,queue

stack与queue 前言容器适配器deque 前言 本篇主要讲解stack与queue的底层&#xff0c;但并不会进行实现&#xff0c;stack的接口 queue的接口 &#xff0c;关于stack与queue的接口在这里不做讲解&#xff0c;因为通过前面的对STL的学习&#xff0c;这些接口都是大同小异的。 …

解决社区录音应用横屏状态下,录音后无法播放的bug

最近看到社区有小伙伴反映&#xff0c;社区录音应用横屏时&#xff0c;录音后无法播放的问题。现分享解决办法。 社区录音应用的来源&#xff1a;https://gitee.com/openharmony/applications_app_samples/tree/OpenHarmony-5.0.2-Release/code/SystemFeature/Media/Recorder …

专业级软件卸载工具:免费使用,彻底卸载无残留!

在数字生活节奏日益加快的今天&#xff0c;我们的电脑就像每天都在"吃进"各种软件。但您是否注意到&#xff0c;那些看似消失的程序其实悄悄留下了大量冗余文件&#xff1f;就像厨房角落里积攒的调味瓶空罐&#xff0c;日积月累就会让系统变得"消化不良"。…