mysql sql优化及注意事项
- sql优化分析
通过slow_log等方式可以捕获慢查询sql,然后就是减少其对io和cpu的使用(不合理的索引、不必要的数据访问和排序)
当我们面对具体的sql时,首先查看其执行计划
A.看其是否使用索引
B.查看其查询的记录数
C.确定索引的代价是否过高
D.是否可以使用复合索引
E.是否有“using temporary”
F.是否有“using filesort”
- 创建高效索引
mysql的innodb有自己特殊的聚集索引(数据是按聚集索引的顺序存储的并和索引存储在一起),索引访问效率较高,次
要索引是通过先找到pk聚集索引,然后才能找到数据。
单列索引
单列索引比较简单,就是对单个列创建的索引,主键索引最好选择int类型,提高性能。
复合索引
复合索引是多列组合而成的索引,过滤效果越好的越放在前面,尽量通过索引完成过滤,回表只是取出额外的字段,当然如果
不需要回表,只扫描索引就可以获取所需数据最好了
- sql写法注意事项
1)禁止3表以上的join
2)避免"select *"和排序功能共同使用
3)用jion替换子查询
4)用union all替换union
5)避免数据类型的转换,同数据类型比较
6)避免排序(通过索引或减少排序记录数)
7)对数据尽早过滤(复合索引过滤性更好的字段放的更靠前;尽量加少最后join结果集的数量)
8)把大sql拆分为多小sql
9)如果只是分组,用”group by a1 order by null“替换“group by a1”去除排序
10)禁止索引null列
11)字符例是否是前缀索引
转自:http://blog.csdn.net/wyzxg/article/details/7598964
转载于:https://www.cnblogs.com/olmlo/p/4809009.html
mysql sql优化及注意事项相关推荐
- mysql sql优化书籍_MySQL SQL优化的正确姿势
大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 已经很久没写文章了 今天分享一篇优化SQL 案例 slow query 里有如下 SQL 看下执行计划如下 从执行计划可以看出C表全表扫描了 那 ...
- MySQL SQL 优化参数 引发的悲剧
大家好,我是知数堂SQL 优化班老师 网名:骑龟的兔子 今天给大家看一个案例来讨论,这个案例是真实案例,因为之前踩bug 导致数据库crash 所以临时关了优化器参数 set gloabl optim ...
- mysql sql注意事项_mysql sql优化及注意事项
sql优化分析 通过slow_log等方式可以捕获慢查询sql,然后就是减少其对io和cpu的使用(不合理的索引.不必要的数据访问和排序) 当我们面对具体的sql时,首先查看其执行计划 A.看其是否使 ...
- MySQL SQL优化
前言 有人反馈之前几篇文章过于理论缺少实际操作细节,这篇文章就多一些可操作性的内容吧. 注:这篇文章是以 MySQL 为背景,很多内容同时适用于其他关系型数据库,需要有一些索引知识为基础. 优化目标 ...
- mysql sql优化_浅谈mysql中sql优化
说到sql优化,一般有几个步骤呢,在网上看到了一篇很不错的帖子.在这分享一下吧,也是自己学习的一个过程. 一.查找慢查询 1.1.查看SQL执行频率 SHOW STATUS LIKE 'Com_%'; ...
- 谈谈mysql优化_浅谈MySQL SQL优化
本文首发于个人微信公众号<andyqian>,期待你的关注 前言 有好几天没有写文章了,实在不好意思.之前就有朋友希望我写写MySQL优化的文章.我迟迟没有动笔,主要是因为,SQL优化这个 ...
- 18.Mysql SQL优化
18.SQL优化 18.1 优化SQL语句的一般步骤 18.1.1 通过show status命令了解各种SQL的执行频率 show [session|global] status; -- 查看服务器 ...
- mysql sql优化与调优机制详解_MySQL之SQL优化详解(一)
目录 序言: 在我面试很多人的过程中,很多人谈到SQL优化都头头是道,建索引,explain分析,like全模糊会导致索引失效 云云,于是我问道:优化之前,需要找出数据库中比如超过2s的慢SQL,你是 ...
- mysql sql优化
事情是这样的,之前的小伙伴碰到一个sql优化的问题,,三个表联查,速度很慢要十几秒,当然这个三个表数据有个几万条的样子,想想不该呀,几万条数据而已,第一反应是索引问题,mysql完全没问题不至于这么慢 ...
最新文章
- GridView,Repeater分页控件:WebPager(开源)
- 2021/6/20~22 每天学习python 30分钟 -了解python - python的运算符
- Java20-day11【实现多线程(进程、线程-调度-控制-生命周期)、线程同步(同步代码块、线程安全、Lock)、生产者消费者(模式概述、案例)】
- 快排算法的Java实现
- Some Essential JavaScript Questions And Answers(6)
- 递归遍历文件及子文件夹下的文件(该代码是复制过来修改过的,如果有侵作者权的话,请作者联系我,立即删除)...
- mysql 分表例子_mysql分表查询的简单例子
- python运维开发_python运维开发
- idea导入导出 settings 设置文件
- DMR对讲机的基本概念理解
- python地理数据处理 下载_Python批量下载地理空间数据云数据!Python无所不能!...
- html与css知识点集合
- 如何管理计算机回收站,回收站功能多多 教你如何玩转回收站
- VS修改MFC工程的程序图标
- python无限循环怎么停止,如何在Python中安全地停止无限循环?
- 用c++从头开始实现决策树
- 交叉熵、KL散度、Jeffery分歧、JS散度
- Java Day24
- 软考高级-系统架构师-软件架构设计
- PHP应用-一揽子解决方案
热门文章
- WIN8 下IE突然无法打开(管理员权限可打开)
- 编译安装squid3.1--亲测
- “八戒”马德华自传《悟能》首发《西游记》师徒五人再聚首
- 无需共享存储发布高性能的虚拟桌面
- 阿里再减持陌陌股份 持股比例从20.2%降至14%
- poj1068Parencodings
- 万能转换器boost::lexical_cast
- 软件使用方法_视频录制软件进行电脑屏幕录像的使用方法
- 消防信号总线原理_消防设施操作员关键技能之八:能通过总线式消防联动控制器启动警报等装置...
- php应用处理数据 504,PHP与504服务器错误