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什么 其他函数
SELECT * FROM `mobantestinfo` GROUP BY info2
ps:加复合索引 每个字段 type会达到range 注意info2要排第一个才有效果
6 加了索引会降低insert和update速度 所以不要滥用
7搜索url这种可以考虑使用哈希索引 不过需要memory引擎
8给order by加索引能增加排序速度 一般表非常大的时候使用 ps:给order by加索引的时候 前面where字段也要加 不然没效果
9 union all比union 性能好
10避免重复查询刚刚更新的数据 mysql语句如下 第二次不需要查询表 速度会快很多
update mobantestinfo set info1=333 where id=33 AND @now:=333 AND @now1:=444;
select @now as xx,@now1 as xx1;
11 尽量用in代替or 因为or不用索引 in能用索引
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/4028.html
mysql相关文章
- enterprise library mysql_enterpriseLibrary连接MySQL数据库
- MySQL(八)之DML详解数据库
- CentOS7下安装mysql最快捷方式及mysql远程访问连接实现详解数据库
- 更新更新MySQL数据库,实现技术进步(mysql数据库版本)
- MySQL Status Ssl_cipher 数据库状态作用意思及如何正确
- 锁MySQL的排他锁的优势及应用(mysql排他)
- 怎么办MySQL 关机处理方法汇总(mysql关机)
- MySQL注册表路径探索之旅(mysql注册表的路径)
- 优化MySQL语句查询:精准优化时间效率(mysql语句查询时间)
- MySQL中最新记录的快速查询(mysql最新记录查询)
- 使用 CMD 快捷登录 MySQL 数据库(cmd登录mysql)
- MySQL中遍历结果集的方法(mysql遍历结果集)
- MySQL数据库:从官网快速下载(mysql数据库官网下载)
- MySQL如何将数据成功导出(mysql把数据导出)
- MySQL: 建立良好的数据库连接(mysql联系)
- MySQL实战:自定义主键最佳实践(mysql自定义主键)
- 性能监测MySQL数据库性能:提升运行效率(监控mysql数据库)
- MySQL连接查询:实现数据最佳技术(mysql 的连接查询)
- MySQL数据库: 找寻最佳解决方案(mysql数据库技术答案)
- 从异地CMD连接MySQL数据库实现远程操作(cmd连接异地mysql)
- 深入了解MySQL专家丁奇的个人资料(mysql丁奇个人资料)
- MySQL直播一般在哪里(mysql一般在哪里直播)
- MySQL上传限制你知道最大容量吗(mysql上传最大限制吗)
- 回顾MySQL 探索上个月的数据库时间(mysql 上个月时间)
- MySQL无法显示全部数据库(mysql不能显示所有库)