SQL语句优化 1 企业SQL优化思路 1.把一个大的不使用索引的SQL语句按照功能进行拆分 2.长的SQL语句无法使用索引,能不能变成2条短的SQL语句让它分别使用上索引. 3.对SQL语句功能的拆分和修改 4.减少"烂"SQL由运维(DBA)和开发交流(确认),共同确定如何改,最终由DBA执行 5.制定开发流程 2 不适合走索引的场景 1.唯一值少的列上不适合建立索引或者建立索引效率低.例如:性别列 2.小表可以不建立索引,100条记录. 3.对于数据仓库,大量全表扫描的情况,建索…
1.EXPLAIN 做MySQL优化,我们要善用EXPLAIN查看SQL执行计划. 下面来个简单的示例,标注(1.2.3.4.5)我们要重点关注的数据: type列,连接类型.一个好的SQL语句至少要达到range级别.杜绝出现all级别. key列,使用到的索引名.如果没有选择索引,值是NULL.可以采取强制索引方式. key_len列,索引长度. rows列,扫描行数.该值是个预估值. extra列,详细说明.注意,常见的不太友好的值,如下:Using filesort,Using temp…
做优化,我在这里引用淘宝系统分析师蒋江伟的一句话:只有勇于承担,才能让人有勇气,有承担自己的错误的勇气.有承担错误的勇气,就有去做事得勇气.无论做什么事,只要是对的,就要去做,勇敢去做.出了错误,承担错误,改正错误,这样的人没有人会去责怪. 很久之前就想写一篇关于mysql优化方面的文章了,忙于工作,在着也比较懒散.现在网上mysql优化方面的帖子很多,也不乏精品.很早听一DBA前辈说过:mysql的优化,三分配置的优化,七分sql语句的优化.之前不是很理解,但接触到高并发大数据的时候,这句话的…
基础操作     一:MySQL基础操作         1:MySQL表复制             复制表结构 + 复制表数据             create table t3 like t1;  --创建一个和t1一样的表,用like(表结构也一样)             insert into t3 select * from t1;  --t1的数据全部拿过来,注意是表结构一致才select* ,否则选择相应的的字段列插入                           c…
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/a724888/article/details/79394168 本文不堆叠网上海量的sql优化技巧或是诀窍.只通过两个浅显易懂又实用的例子介绍mysql的sql语句优化. 首先介绍一下一般的大表优化方案.当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 微信公众号[黄小斜]大厂程序员,互联网行业新知,终身学习践行者.关注后回复「Java」.「Python」…
推荐阅读这篇博文,索引说的非常详细到位:http://blog.linezing.com/?p=798#nav-3-2 在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要因素.当然还有其他方面的,比如OS优化,硬件优化,MySQL Server优化,数据类型优化,应用层优化,但是这些都没有SQL语句优化来的重要.下面将介绍INSERT,GROUP BY,LIMIT等的优化方法. 1.优化大批量插入数据 当用load命令导入数据的时候,适当的设置可以提高导入的速度.对…
 本文参考下面的文章:    1: [真·干货]MySQL 索引及优化实战 2:  Mysql语句的执行过程 3:  sql优化的几种方法 我将  sql语句优化分为三个方面,(此处不包括 业务逻辑的优化 和 缓存的使用 ) :  索引优化 ; 关键字的使用 ; 有效的规避 . 1: 索引的优化  可以分为 索引命中无效 的 优化  和 索引命中低效 的 优化 ; 1) : 索引命中无效的情况: a : 如果是单列索引的话;最好不要出现null ; 据说是允许为null的话,可能会得到不符合预期…
引言 优化SQL,是DBA常见的工作之一.如何高效.快速地优化一条语句,是每个DBA经常要面对的一个问题.在日常的优化工作中,我发现有很多操作是在优化过程中必不可少的步骤.然而这些步骤重复性的执行,又会耗费DBA很多精力.于是萌发了自己编写小工具,提高优化效率的想法. 那选择何种语言来开发工具呢? 对于一名DBA来说,掌握一门语言配合自己的工作是非常必要的.相对于shell的简单.perl的飘逸,Python是一种严谨的高级语言.其具备上手快.语法简单.扩展丰富.跨平台等多种优点.很多人把它称为…
mysql的sql语句优化方法面试题总结 不要写一些没有意义的查询,如需要生成一个空表结构: select col1,col2 into #t from t where 1=0 这类代码不会返回任何结果集,但是会消耗系统资源的,应改成这样: create table #t(...) 很多时候用 exists 代替 in 是一个好的选择: select num from a where num in(select num from b) 用下面的语句替换: select num from a wh…
php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行计划和B+树以后,优化SQL语句还是比较简单的,当然还有特别复杂的SQL,我这里只是一些简单例子,当然再复杂的SQL,还是逃脱不了原理性的东西. 1.mysql中无法使用索引的情况? (1).以%开头的like查询 (2).数据类型出现隐式转换的时候也不会使用索引,特别是当列类型是字符串,那么一定记…