SQL性能优化思路
1. 尽可能把数据的存储和计算放入Memory而不是Disk,且减少IO操作,比如运用Redis等缓存技术
2. 对数据表进行精心设计,特别是大数据表,对常用数据字段进行适当的冗余,尽可能避免分表导致的Join查询,即使非Join不可也是大表和小表Join,而不是一堆大表之间Join
3. 对常用查询字段,特别是作为Join on条件的字段,必须建立索引
4. 对大数据集结果做条件限制,仅返回其小范围子集,例如运用Limit或Where进行条件过滤
N张表join,然后select如何优化?
1.在join表中的on列上加上索引
create index i_cr_data_dic on cr_data_dic(data_code);
2.结果用limit进行限制,比如limit 1,10
对select count(*) from bigTable,基于上面的索引优化后,这个还是特别耗时,特别慢,怎么办呢?
只能从走对结果集进行条件限制的思路,比如加上where条件,创建时间为最近1月,其实把整个历史上所有数据都统计一遍,通常是不需要的
select count(*) from
"pre_app_main" "pam" left join "pre_app_customer" "pac" on("pam"."id" = "pac"."app_id")
left join "pre_app_staff_only" "paso" on("pam"."id" = "paso"."app_id")
left join "pre_app_loan" "pal" on("pam"."id" = "pal"."app_id")
left join "cr_data_dic" "cdd1" on("pam"."pre_app_status" = "cdd1"."data_code")
left join "cr_data_dic" "cdd2" on("pam"."app_status" = "cdd2"."data_code")
left join "app_city" "act" on(concat('PREQAPP_WECHAT_',"pam"."apply_city_code") = "act"."city_code")
where pam.created_time > DATE_SUB(NOW(), INTERVAL 1 MONTH)
SQL性能优化思路的更多相关文章
- 【SQL系列】深入浅出数据仓库中SQL性能优化之Hive篇
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SQL系列]深入浅出数据仓库中SQL性能优化之 ...
- SQL性能优化技巧
作者:IT王小二 博客:https://itwxe.com 这里就给小伙伴们带来工作中常用的一些 SQL 性能优化技巧总结,包括常见优化十经验.order by 与 group by 优化.分页查询优 ...
- SQL性能优化常见措施(Lock wait timeout exceeded)
SQL性能优化常见措施 目 录 1.mysql中explain命令使用 2.mysql中mysqldumpslow的使用 3.mysql中修改my.ini配置文件记录日志 4.mysql中如何加索引 ...
- SQL性能优化案例分析
这段时间做一个SQL性能优化的案例分析, 整理了一下过往的案例,发现一个比较有意思的,拿出来给大家分享. 这个项目是我在项目开展2期的时候才加入的, 之前一期是个金融内部信息门户, 里面有个功能是收集 ...
- SQL性能优化
引言: 以前在面试的过程中,总有面试官问道:你做过sql性能优化吗?对此,我的答复是没有.一次没有不是自己的错误,两次也不是,但如果是多次呢?今天痛下决心,把有关sql性能优化的相关知识总结一下,以便 ...
- 如何进行正确的SQL性能优化
在SQL查询中,为了提高查询的效率,我们常常采取一些措施对查询语句进行SQL性能优化.本文我们总结了一些优化措施,接下来我们就一一介绍. 1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE ...
- SQL Select count(*)和Count(1)的区别和执行方式及SQL性能优化
SQL性能优化:http://www.cnblogs.com/CareySon/category/360333.html Select count(*)和Count(1)的区别和执行方式 在SQL S ...
- 如何进行SQL性能优化
在SQL查询中,为了提高查询的效率,我们常常采取一些措施对查询语句进行SQL性能优化.本文我们总结了一些优化措施,接下来我们就一一介绍. 1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE ...
- 关于SQL性能优化的十条经验
1.查询的模糊匹配 尽量避免在一个复杂查询里面使用 LIKE '%parm1%'—— 红色标识位置的百分号会导致相关列的索引无法使用,最好不要用. 解决办法: 其实只需要对该脚本略做改进,查询速度便会 ...
随机推荐
- linux查看物理cpu的核数,个数,逻辑cpu的个数
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 # 查看物理CPU个数 cat /proc/cpuinfo| ...
- Matlab批量获取子文件夹与文件名
批量得到父文件夹下所有子文件夹的路径的MATLAB函数. function [SubFolders] = GetFolders(ParentFolder) %GetFolders % 函数功能为获取父 ...
- dropout含义与原理
含义 在训练过程中,对神经网络单元按照一定比例暂时将其丢弃. 原理 由于网络参数过多,训练数据少,或者训练次数过多,会产生过拟合的现象.dropout产生的一个重大原因就是为了避免过拟合. 每一层的神 ...
- DSP6455的EMIFA口
DSP6455的EMIFA口 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 支持两种不同的接口模式: 异步接口:标准的SRAM,ROM接口 同步接口:SBS ...
- [知乎]鲲鹏920对比intel8180
作者:韩朴宇链接:https://www.zhihu.com/question/308298687/answer/568737742来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- Word 写论文插入参考文献的正确操作
1. 引言 一般我们写论文插入参考文献的标号都是手动输入的,这样造成的问题有以下几个: 手动输入标号比较麻烦: 如果参考文献顺序变了,需要一个一个重新更改标号数值,及其麻烦: 标号无法和末尾的参考文献 ...
- libevent实现TCP 服务端
libevent实现Tcp Server基于bufferevent实现 /******************************************************** Copyri ...
- c函数模板实现
实现冒泡排序模板 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <str ...
- 正则与re模块
一.正则表达式 在线测试工具 http://tool.chinaz.com/regex/ 1.字符组 在同一个位置可能出现的各种字符组成一个字符组,在正则表达中用[ ]表示 一个正则就是一条匹 ...
- 3.ASP.NET Core Docker学习-构建单机多容器环境
基于docker Docker运行 : docker run -p 8001:80 -d --name name1 name2:1.0 其中-p 8001:80 8001是主机的端口,80是容器的端口 ...