慢查询SQL优化

慢查询:就是查询响应比较慢的查询,那慢查询的标准是什么呢?对于慢查询的定义没有一个固定的标准,一般情况下把查询时间超过1s的查询称为慢查询。

 

优化SQL的两种方式:

  1. 优化查询SQL及表结构
  2. 进行分库分表(分库的时候可能需要DB介入)

以上两种方式均是程序员层面可以主观介入的层面

按照上述两种情况来分开阐述一下(个人见解)

一、优化查询SQL及表结构

  • 合理使用索引,对于代码中查询频繁的SQL条件添加索引
  • 查询SQL中的查询字段最好能确定,也就是少用*,最好能确定需要查询的字段
  • 检查查询字段中是否存在大字段的查询,使用其他方式代替,减少大字段的查询

二、进行分库分表

  • 分库代表将数据库按照业务或者适用数据范围进行分割,如:根据不同业务渠道分割成不同数据库,使用不同的微服务进行数据处理;而适用数据范围则可能会将原本一个很大数据库按交易时间来划分(年),对于需要高查询效率的范围特殊分割一下。
  • 分表代表在建立业务表时对于后期交易接入数据量进行预判,判断是否需要在建表的时候进行分区表操作

笔者认为分库分表的核心都在于削减单库或单表数据量,减少单库单表数据查询压力。所有在使用和面试过程中肯定会有所交叉。

知识补充(分区表语句)

MYSQL:
#查看数据库是否支持分区
show variables like '%partition%';

MYSQL官方文档Document在这

ORACLE官方文档

PS:如果有不同见解或者觉得笔者有误请不吝赐教

慢查询SQL优化数据库性能优化的一个重要方面,通过对慢查询SQL进行优化可以提升数据库的响应速度和性能。以下是一些慢查询SQL优化的测试点: 1. SQL语句的索引使用情况:检查SQL语句是否使用了适当的索引,包括主键索引、唯一索引、组合索引等。可以通过查看执行计划或使用数据库的索引分析工具来评估索引的使用情况。 2. 数据库表结构设计:检查数据库表的结构设计是否合理,包括字段类型选择、字段长度设置、表之间的关联关系等。不合理的表结构设计可能导致查询效率低下。 3. SQL语句的写法和语义:检查SQL语句的写法是否规范,避免使用不必要的子查询、多余的连接操作等。同时,还要确保SQL语句的语义正确,避免出现歧义或错误的查询结果。 4. 数据库参数配置:检查数据库的参数配置是否合理,包括缓冲区大小、并发连接数、查询缓存等。不合理的参数配置可能导致性能下降。 5. 数据库服务器性能监控:监控数据库服务器的性能指标,包括CPU利用率、内存利用率、磁盘IO等。通过监控可以及时发现性能瓶颈,并进行相应的优化。 6. SQL语句的执行计划:通过查看SQL语句的执行计划,可以了解SQL语句的执行过程和资源消耗情况。根据执行计划可以判断是否存在性能问题,并进行相应的优化。 7. 数据库表的统计信息:检查数据库表的统计信息是否准确,包括表的行数、索引的选择性等。不准确的统计信息可能导致查询优化器做出错误的执行计划选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值