示例 WHILE s <> 1 DO select xxx; insert into xxx; END WHILE; 执行耗时27秒 优化点1: 添加事物 START TRANSACTION; #开启事物 WHILE s <> 1 DO select xxx; insert into xxx; END WHILE; COMMIT; #提交 执行耗时3秒,效率提升一大截 优化点2: 添加索引 把 where条件能加索引全部加上索引,所有用到的表都加上去 执行耗时1秒左右,效率又提升一…
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, Sql 代码 : select id from t where num is null; 可以在 num 上设置默认值 0,确保表中 num 列没有 null 值,然后这样查询: Sql 代码 : select id from t where num=0; 3.应尽量避免在 wh…
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 缺省情况下建立的索引是非群集索引,但有时它并不是最佳的.在非群集索引下,数据在物理上随机存放在数据页上.合理的索引设计要建立在对各种查询的分析和预测上.一般来说: a.有大量重复值.且经常有范围查询( > ,< ,> =,< =)和 order by.group by 发生的列,可考虑建立集群索引; b.经常同时存取多列,且每列都含有重复值可考虑建立组合索引, 选择度高的列…
工具官网地址:http://www.devart.com/dbforge/mysql/studio/ 对于某些存储过程很多且复杂的SQL的应用,在短时间内要使得所有MySQL存储过程和函数正常运行,那么如果能找到一个比较好的调试工具,就可以事半功倍, 这里介绍的是dbForge Studio for MySQL. 1. 首先说明dbForge Studio for MySQL具有存储过程调试功能的版本是收费的,但有30天调用期,我想足以满足你的要求. 2安装部分省略,直接官网下载安装,没有依赖包…