SQL优化思路与解决方案
1.面对问题SQL的思考
- 这条查询SQL的语句到底有没有问题?
- 存在什么问题? 什么情况下存在问题?
- 怎么去优化?
2.SQL优化思路
- where查询字段是否建立索引?
- 是否有建立索引但是查询时候没有用到索引,比如说 status != 1 这种查询方式
- 如果有多个查询条件,是否可以使用联合索引? (一个联合索引就可以解决不需要建立三个索引)
- 使用explain去发现问题
- 是否存在深度分页问题? (在select * from查询下如果分页十万条去取数据,将非常恐怖)
- 深度分页问题可以考虑使用子查询(先将查询数据的主键id查询出来,在用in去查询数据字段),主要因为回表问题
- 多条件查询的时候,就是要将数据过滤到最小,所以要将检索的字段顺序排好
- 如果是分页的接口对外暴露,一定要控制分页的大小(50或者100)
- 如果是在操作sql进行统计,是否可以异步? 建立专门统计表去处理,而不是每次查询都在sql中操作一遍
- 如果查询的sql比较复,使用了group by等多个关键字,会创建出多个临时表,影响查询效率
- 考虑数据库参数配置优化
SQL优化思路与解决方案的更多相关文章
- SQL优化思路大全
一.百万级数据库优化方案 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断 ...
- Hive SQL优化思路
Hive的优化主要分为:配置优化.SQL语句优化.任务优化等方案.其中在开发过程中主要涉及到的可能是SQL优化这块. 优化的核心思想是: 减少数据量(例如分区.列剪裁) 避免数据倾斜(例如加参数.Ke ...
- Oracle的SQL优化思路
个人总结SQL脚本优化,大体如下: (1)选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表dir ...
- sql索引优化思路
[开发]SQL优化思路(以oracle为例) powered by wanglifeng https://www.cnblogs.com/wanglifeng717 单表查询的优化思路 单表查询是最简 ...
- sql优化阶段性总结以及反思
Sql优化思路阶段性心得: 这段时间的优化做了好几个案例,其实有很多的类似点,都是好几张大表的相互连接,然后执行长达好几个小时,甚至都跑不出来. 自己差不多的思路就是Parallel full tab ...
- 基于Oracle的SQL优化(社区万众期待 数据库优化扛鼎巨著)
基于Oracle的SQL优化(社区万众期待数据库优化扛鼎巨著) 崔华 编 ISBN 978-7-121-21758-6 2014年1月出版 定价:128.00元 856页 16开 编辑推荐 本土O ...
- 京东云TiDB SQL优化的最佳实践
京东云TiDB SQL层的背景介绍 从总体上概括 TiDB 和 MySQL 兼容策略,如下表: SQL层的架构 用户的 SQL 请求会直接或者通过 Load Balancer 发送到 京东云TiDB ...
- Sql 优化解决方案
转自:https://blog.csdn.net/jie_liang/article/details/77340905 用以记录: 在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行 ...
- 城市经纬度 json 理解SignalR Main(string[] args)之args传递的几种方式 串口编程之端口 多线程详细介绍 递归一个List<T>,可自己根据需要改造为通用型。 Sql 优化解决方案
城市经纬度 json https://www.cnblogs.com/innershare/p/10723968.html 理解SignalR ASP .NET SignalR 是一个ASP .NET ...
随机推荐
- 宝塔面板无法进入phpadmin管理数据库解决办法
ECS--华为云 宝塔面板6.0 phpMyAdmin 4.4 经过搜索发现问题在于端口和安全组规则 解决方法如下 1.在安全中添加888端口 2.华为云安全组规则--入方向规则--添加规则 3.打开 ...
- GXOI2018 滚粗记
今天考了一次蜜汁省选,滚粗了.想了想,还是写点什么记录一下 8:10 折腾一番总算拿到题目和样例了,一打开dpf,立马感觉到了不对劲. 题目一股浓浓的劣质模拟题的画风,先不说题目质量,单是排版质量都被 ...
- Simulink代码自动生成(一)
前面介绍了MDB的设计思想并对比了它和传统的嵌入式软件开发之间的差异,现在开始使用Simulink工具演示模型的搭建和C代码的自动生成过程. Matlab版本:R2018B 一.算法模型的搭建 搭建一 ...
- 按揭贷款的计算原理与java实现
Number部分(6) Mortgage Calculator--按揭贷款计算器 题目描述: Mortgage Calculator – Calculate the monthly payments ...
- 【SpringBoot】12.全局配置文件(properties)与yml配置文件
一.SpringBoot全局配置文件 1.修改内嵌容器端口号 #application.properties server.port=8888 2.自定义属性的配置 使用@Value来给成员变量赋值 ...
- XML fragments parsed from previous mappers already contains value for
1. ssm项目报错: WARN [main] DefaultListableBeanFactory:1479-- Bean creation exception on FactoryBean t ...
- http代理阅读4 响应缓存处理
if (c->read->ready) { ngx_http_upstream_process_header(r, u); //读事件触发 准备处理http头部信息 return; } 向 ...
- facl权限(getfacl/setfacl)
file access control list:文件访问控制列表 查看facl: [root@localhost test]# getfacl hei # file: hei # owner: ro ...
- Markdown 常用语言关键字
Markdown 语法高亮支持的语言还是比较多的,记下来备用. 语言名 关键字 Bash bash CoffeeScript coffeescript C++ cpp C# cs CSS css Di ...
- 06 Vue路由简介,原理,实现及嵌套路由,动态路由
路由概念 路由的本质就是一种对应关系,比如说我们在url地址中输入我们要访问的url地址之后,浏览器要去请求这个url地址对应的资源. 那么url地址和真实的资源之间就有一种对应的关系,就是路由. 路 ...