mysql explain亲测
mysql explain亲测
1 where后面字段加索引:数据库类型如果是字符串类型 查询where的时候必须要用 字符串 类型必须一致 否则不用索引 type还是会是all的 ps:如果where有2个字段匹配 那就要2个字段加上索引 这里有必要说明下 btree索引支持匹配索引第一列 也就是说 info1和info2加了复合索引也同时给info1加了索引
2 left join 索引优化的时候 只需要右表字段加索引 还有where后字段加索引 ps左表尽可能的小 因为他不用索引的。。。 适当的时候where左表字段筛选
3 应尽量避免在 where 子句中使用 != 或 <> 操作符,否则将引擎放弃使用索引而进行全表扫描。
应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0
应尽量避免在 where 子句中使用or 来连接条件, 一般用in来代替or 或者 select * from mobantestinfo where info2=33 union all select * from mobantestinfo where info2=36
.应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描。如:select id from t where num/2=100应改为:select id from t where num=100*2
4能用唯一索引尽量用唯一索引
5 goupby语句 只需要gourp by后面的字段要加索引 不过type也只能达到index级别
如果是下面语句 没有where什么 其他函数
<pre>
SELECT * FROM `mobantestinfo` GROUP BY info2
</pre>
ps:加复合索引 每个字段 type会达到range 注意info2要排第一个才有效果
6 加了索引会降低insert和update速度 所以不要滥用
7搜索url这种可以考虑使用哈希索引 不过需要memory引擎
8给order by加索引能增加排序速度 一般表非常大的时候使用 ps:给order by加索引的时候 前面where字段也要加 不然没效果
9 union all比union 性能好
10避免重复查询刚刚更新的数据 mysql语句如下 第二次不需要查询表 速度会快很多
<pre>
update mobantestinfo set info1=333 where id=33 AND @now:=333 AND @now1:=444;
select @now as xx,@now1 as xx1;
</pre>
11 尽量用in代替or 因为or不用索引 in能用索引
mysql explain亲测的更多相关文章
- 转载:MySQL:亲测备份策略实例(线上真实备份案例)
是否为线上库的备份而烦恼过,这里提供一个完整的备份从属数据库的备份方案,亲测可用 说明: 备份从库,按周计,每周进行一次全备 每周一的早上六点进行全备,其他时间备份中继日志 在从库上启用rsync服务 ...
- mysql主从复制亲测,以及注意事项
本人亲测,windows作为mysql主服务器,linux作为从服务器,使用两个linux配置步骤都一样,测一遍而已:区别配置文件在于windwos是my.ini.linux在/etc/my.cof ...
- 【MySQL】亲测可用的教程筛选:安装与卸载
windows版本的 安装看这篇,非常详细:https://www.cnblogs.com/winton-nfs/p/11524007.html 彻底清除:https://www.pianshen.c ...
- Navicat 12 for MySQL最新版激活(注册机)(转)(亲测有效)
Navicat 12 for MySQL最新版激活(注册机)(转)(亲测有效) 一.总结 一句话总结: 1.卸载自己机器上面的Navicat,安装下载的包里面的Navicat安装包,不然可能不行 2. ...
- 阿里云服务器centos7,docker部署mysql+Redis+vue+springboot+Nginx+fastdfs,亲测可用
一.购买云服务器 我是今年双十一期间在阿里云购买的服务器, 简单配置2核_4G_40G_3M,三年用了不到800块,不过当时我记得腾讯云更便宜,个人感觉,阿里的云服务器更加的稳定, 毕竟身经百战, 经 ...
- nginx代理https站点(亲测)
nginx代理https站点(亲测) 首先,我相信大家已经搞定了nginx正常代理http站点的方法,下面重点介绍代理https站点的配置方法,以及注意事项,因为目前大部分站点有转换https的需要所 ...
- 推荐几个最好用的CRM软件,本人亲测
CRM是英文Customer Relationship Management 的简写,一般译作“客户关系管理”.CRM最早产生于美国,由Gartner Group 首先提出的CRM这个概念的.20世纪 ...
- 【转】Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)
http://blog.csdn.net/ccf19881030/article/details/9204801 很久以前使用博客园博主子龙山人的一篇博文<Cocos2d-x win7+vs20 ...
- 亲测linux 上安装php
亲测安装php1.tar zvxf php-5.3.8.tar.gz 2.cd php-5.3.83../configure \ --prefix=/usr/local/php \--with-mys ...
随机推荐
- Lisp : (quote) code is data (eval) data as code
- PIE SDK剔除栅格块算法
1.算法功能简介 剔除栅格块即剔除栅格小斑块功能.一幅影像图层某一区域存在碎小斑块,需要对其按照一定的条件进行剔除. PIE支持剔除栅格快算法功能的执行,下面对该算法功能进行介绍. 2.算法功能实现说 ...
- cocos2d-js中jsc逆向为js攻略
笔记: 主要发现有两个工具 存档记录一下 https://github.com/OEDx/cocos-jsc-endecryptor python的 解密需要秘钥 推荐这个: https://git ...
- Fortify漏洞之Portability Flaw: File Separator 和 Poor Error Handling: Return Inside Finally
继续对Fortify的漏洞进行总结,本篇主要针对 Portability Flaw: File Separator 和 Poor Error Handling: Return Inside Fina ...
- Docker搭建Nexus(Maven私库)
0.镜像的查找:docker search nexus 1.拉取官方镜像:docker pull sonatype/nexus3 2.创建了自己的目录 (/opt/nexus/nexus-data) ...
- ant笔记
目录 ant远程部署 ant的使用,命令! 参考文献: ant+maven一键打包springboot上传服务器发布 判断linux文件.文件夹是否存在 shell中脚本参数传递的两种方式 shell ...
- 修改GIT已提交的用户名和邮箱
修改GIT已提交的用户名和邮箱 原文:https://help.github.com/en/github/using-git/changing-author-info 说明 要更改在现有提交中记录的名 ...
- 对NetBackup 问题进行故障排除的步骤
错误消息通常是指出哪里出现故障的手段.如果在界面上没有看到错误消息,但仍怀疑有问题,请检查报告和日志. NetBackup提供了各种报告和日志记录工具, 这些工具可提供错误消息,直接为您指出解决方案. ...
- SpringBoot 自定义线程池,多线程
原文:https://www.jianshu.com/p/832f2b162450 我们都知道spring只是为我们简单的处理线程池,每次用到线程总会new 一个新的线程,效率不高,所以我们需要自定义 ...
- 201671010447 杨露露 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 总结这学期软件工程学习获得 一 ...