关于sql优化的一些点
慢查询日志
参考:https://www.cnblogs.com/saneri/p/6656161.html
查询是否开启慢查询日志: show variables like '%slow_query_log%';
开启慢查询日志: set global slow_query_log=1;
查询慢查询的阈值:show variables like '%long_query_time%';
设置超过多少秒就记录慢查询日志: set global long_query_time=3;
日志输出的形式: log_output
说明一下:log_output可以是TABLE也可以是FILE,也可以同时是,用逗号隔开,分别表示日志以表输出和以文件输出;
未做索引的查询也做慢查询日志: log_queries_not_using_indexes
索引(空间换时间)
主键索引
普通索引
唯一索引
全文索引
组合索引
伴随
sql语句优化
所有查询*
尽量少用 select * from
Null
不要用 where xx is null ,可以给字段初始化一个值以对应null的情况
!=
尽量不要用 != ,使用 in 或者 not in
少用子查询
子查询:嵌套(select查询)
in
尽量不用in用 between 和 exists
join 超过三张表不要join,join的字段最好是索引
索引 有唯一属性的尽量建索引,order by索引
关于sql优化的一些点的更多相关文章
- 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优化阶段性总结以及反思
Sql优化思路阶段性心得: 这段时间的优化做了好几个案例,其实有很多的类似点,都是好几张大表的相互连接,然后执行长达好几个小时,甚至都跑不出来. 自己差不多的思路就是Parallel full tab ...
- mysql sql优化实例
mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...
- SQL优化技巧
我们开发的大部分软件,其基本业务流程都是:采集数据→将数据存储到数据库中→根据业务需求查询相应数据→对数据进行处理→传给前台展示.对整个流程进行分析,可以发现软件大部分的操作时间消耗都花在了数据库相关 ...
- ORACLE常用SQL优化hint语句
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ...
- SQL优化有偿服务
本人目前经营MySQL数据库的SQL优化服务,100块钱一条.具体操作模式 其中第一条,可以通过在微信朋友圈转发链接中的信息(http://www.yougemysqldba.com/discuz/v ...
- 【MySQL】SQL优化系列之 in与range 查询
首先我们来说下in()这种方式的查询 在<高性能MySQL>里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的. ...
随机推荐
- zookeeper启动报 Unexpected exception, exiting abnormally 错误
启动zookeeper---jps,未出现QuorumPeerMain进程 原因: 电脑中的某些进程占用了2181 port 通过 sudo netstat -nltp|grep 2181查看进程并k ...
- java序列化和反序列化中的serialVersionUID有啥用
1.什么是序列化和反序列化 序列化就是将java对象转成字节序列的过程:反序列化就是将字节序列转成java对象的过程. java中,序列化的目的一种是需要将对象保存到硬盘上,一种是对象需要在网络中传 ...
- MapReduce时mapping内存不足
17/11/07 16:53:50 INFO mapreduce.Job: Job job_1510042506570_0007 failed with state KILLED due to: MA ...
- python_12 模块
在python中,一个.py文件就称之为一个模块(module) 好处:提高代码的可维护性 模块分为三种:1.python标准库 2.第三方库 3.应用程序自定义模块 import的作用: ...
- mysql 定时计划任务 wish 按照id分组定时循环启动
SELECT count(*) FROM wish_sellers_in;UPDATE wish_sellers_in SET act_status =0 WHERE id >=1 AND ...
- Linux命令:pushd
语法 pushd [-n] [+N | -N | dir] 更改新目录并(或)压栈,或者把栈里的某个目录推到栈顶. 说明 pushd dir # 切换到目标目录dir,并将dir压栈. pushd # ...
- MySQL GTID复制Slave跳过错误事务Id以及复制排错问题总结
GTID复制典型的复制错误有两种:1,数据对象级别的错误,包括主库上update的数据在从库上不存在,主从逐渐冲突,库表索引等对象的冲突等等, 如果是纯粹的跳过错误的话,这一类的错误需要跳过思路是 ...
- Android:得到WebView当前页的html源码
WebView没有提供直接的API,需要用JavaScript变通处理一下.本文试图总结一个最简单.优雅的代码. 有两步: 1.先创建一个JavaScript接口类: class MyJavaScri ...
- Tex和LaTeX认识
TeX (文本排版系统) 利用TeX可以很容易地生成高质量的dvi文件,打印输出.特别是在处理复杂的数学公式时.利用诸如是LaTeX等终端软件,TeX就能够排版出精美的文本. LaTeX LaTeX( ...
- 导出文件的时候 加大php内存
ini_set('max_execution_time', 3600); ini_set('memory_limit', '2048M');