SQL优化记录
2019.06.19记录:
1.SQL优化的原因:
原因:性能低,执行时间太长,等待时间太长,SQL语句欠佳(尤其连接查询),索引失效,服务器参数设置的不合理(如:缓冲区,线程等)
a.SQL:
编写过程:
select dinstinct ... from ... join ... on ... where ... group ... where ... group by ...having ...order by ... limit ...
解析过程:
from .. on .. join .. where ... group by ... having ... select dinstinct ...order by ... limit ...
b.SQL优化,主要就是优化索引
索引:相当于书的目录,index .帮助MYSQL高效获取数据的数据结构,索引是数据结构(树:B树,二叉树,Hash树...),mysql中使用的是B树
索引的弊端:
1.索引本身很大,可以存放在内存/硬盘中
2.索引不是所有情况均适用:a.少量数据 b.频繁更新的字段 c.很少使用的字段
3.索引会降低增删改的效率
优势:1.提高查询效率(降低IO使用率)
2.降低CPU使用率(...order by age desc,因为B树索引 本身就是一个好排序的结构,因此在排序时,可以直接使用)
待续.....
SQL优化记录的更多相关文章
- SQL 优化记录
1. 对Where 语句的法则 1.1 避免在WHERE子句中使用in,not in,or 或者having. 可以使用 exist 和not exist代替 in和not in. 可以使用表链接代 ...
- 数据库优化之SQL语句优化-记录
1. 操作符优化 (a) IN 操作符 从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别: ORACLE试图将其转换成多个表的连接,如果转换不成功则先执行IN里面的子查询,再查 ...
- sql优化经历(转存+记录)
sql优化经历 补充:看到这么多朋友对sql优化感兴趣,我又重新补充了下文章的内容,将更多关于sql优化的知识分享出来, 喜欢这篇文章的朋友给个赞吧,哈哈,欢迎交流,共同进步. 2015-4-30补充 ...
- oracle性能优化(项目中的一个sql优化的简单记录)
在项目中,写的sql主要以查询为主,但是数据量一大,就会突出sql性能优化的重要性.其实在数据量2000W以内,可以考虑索引,但超过2000W了,就要考虑分库分表这些了.本文主要记录在实际项目中,一个 ...
- SQL优化案例—— RowNumber分页
将业务语句翻译成SQL语句不仅是一门技术,还是一门艺术. 下面拿我们程序开发工程师最常用的ROW_NUMBER()分页作为一个典型案例来说明. 先来看看我们最常见的分页的样子: WITH CTE AS ...
- sql 优化
1.选择最有效率的表名顺序(只在基于规则的优化器中有效): oracle的解析器按照从右到左的顺序处理 from 子句中的表名,from子句中写在最后的表(基础表driving table)将被最先处 ...
- SQL 优化总结
SQL 优化总结 (一)SQL Server 关键的内置表.视图 1. sysobjects SELECT name as '函数名称',xtype as XType FROM s ...
- (转)SQL 优化原则
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...
- SQL优化技巧
我们开发的大部分软件,其基本业务流程都是:采集数据→将数据存储到数据库中→根据业务需求查询相应数据→对数据进行处理→传给前台展示.对整个流程进行分析,可以发现软件大部分的操作时间消耗都花在了数据库相关 ...
随机推荐
- 数据库学习之四--Join, Left Join, Right Join, Full Join对比
一.Join, Left Join, Right Join, Full Join区别: 二.查询对比 1. 创建表Persons和Orders,并插入数据: CREATE TABLE `persons ...
- python 安装 pyHook
下载网站:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook 查看python版本 C:\Users\k\Desktop\file_trans> ...
- String 类型的数据强转成int的方法
有2个方法:1). int i = Integer.parseInt(str); 2). int i = Integer.valueOf(str).intValue();
- DockerFile体系结构(保留字指令)
1.FROM --基础镜像,当前新镜像是基于那个镜像的 2.MAINTAINER --镜像维护者的姓名和邮箱地址 3.RUN --容器构建时需要运行的指令 4.EXPOSE --当前容器对外暴露出的端 ...
- 如何使用纯js实现一个带有灰色半透明背景的弹出框
原文如何使用纯js实现一个带有灰色半透明背景的弹出框 // 加入透明背景 var body = document.body;var backgroundDiv = document.createEle ...
- U盘exFAT格式转NTFS
先格式化成FAT或者FAT32(这个简单,右键格式化就成),然后点开始,运行,输入cmd,在里面输入: convert I:/fs:ntfs I是你U盘的字母(大写),完成
- Hype-v创建服务器实例
1.创建虚拟交换机,如下图所示(虚拟交换机,只需要创建一次,后面增加服务器实例的时候,只需要选择这个虚拟交换机就可以了,不用每次都创建) 2.服务器主网络共享给虚拟交换机,如下图所 3.虚拟交换机的I ...
- .NET笔记题库(一)
1 (1)面向对象的语言具有__继承性_性._封装性_性._多态性 性. (2)能用foreach遍历访问的对象需要实现 _ IEnumerable 接口或声明_ GetEnumerator 方法的类 ...
- [go]template使用
//index.html {{if gt .Age 18}} <p>hello, old man, {{.Name}}</p> {{else}} <p>hello, ...
- nc简单使用
1.安装 2.运行