一次千万级别的SQL查询简单优化体验
2024-10-19 04:21:44
背景:从两张有关联的表查询数据,A表数据量1400万,B表数据量8000万。A与B通过ID逻辑关联,没有实际的外键。B表是后来扩展出来的.
问题:根据某个ID查询时超时,运行时跑不出结果。
原因:使用一个or条件,条件里面有一个是A.ID=B.ID
简单优化:将or条件拆开,使用union all;将之前使用表变量的部分换成了临时表;对排序的字段加上了索引
结果:在50ms内能够查询出结果,这个与之前的超时简直不能相比。
感想:感谢DBA mm的帮助,让我有了这样的体验,不实际的处理(哪怕很简单的表关系)千万级的数据量,真不知道SQL语句的性能差异。
实际的体验了使用or的性能居然能够差到这个地步,以后尽量避免使用了。
我没有描述清楚具体的问题,只是大致的说了下。我自己是明白了,记录下来以备后面参考。也希望能够给像我一样的SQL菜菜鸟有点启发。
SQL优化的实践之路还很长,我要慢慢走。工作过程中的体验随时记录下来,分享给大家。
最新文章
- css 修改滚动条
- Python闭包实现的计数器
- .NET打印功能实现 PrintDocument
- 【Hadoop学习】Apache Hadoop ResourceManager HA
- Error: [$injector:unpr] angular.js
- Hudson的安装配置
- Python:列表
- Delphi动态申请数组内存的方法(不使用SetLength,采用和C相似的方式)
- 积累的VC编程小技巧之组合框
- mysql并发控制之快照读和当前读
- ORB-SLAM2的安装和运行流程
- angularjs+webapi2 跨域Basic 认证授权(一)
- 万能五笔输入法";@相反
- 批量压缩 css js 文件 包含多个文件 自动识别
- 对Spring中IOC和DI的理解
- .NET面试题系列(十一)WinDbg、Perfmon
- Haskell语言学习笔记(84)Concurrent
- Working with the Dynamic Type in C#
- 一键安装mysql
- 《算法导论》— Chapter 12 二叉查找树
热门文章
- XE3随笔15:使用 IXMLHTTPRequest 简单获取网页源代码
- 5. Singleton(单例)
- Memcached Memcached.ClientLibrary.SockIOPool”的类型初始值设定项引发异常
- Swift入门学习之一常量,变量和声明
- MVC3在IIS7.5发布(部署)报403.14错误的解决办法
- 面向对象程序设计 第二次作业<;1>;
- tomcat的CATALINA_HOME可以不用设置
- ubuntu 安装JAVA jdk的两种方法:
- The implementation details of the built thermal setup
- 在 Mac OS 上使用 TypeScript 编写 ASP.NET Core 1.0 应用