慢查询SQL优化

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

优化SQL的两种方式:

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

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

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

一、优化查询SQL及表结构

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

二、进行分库分表

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

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

知识补充(分区表语句)

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

MYSQL官方文档Document在这

ORACLE官方文档

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

猜你喜欢

转载自blog.csdn.net/weixin_42505381/article/details/128385239