• 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

最新文章

  1. 关于app的具体实施
  2. html5 canvas用动画的形式装载图像
  3. sphinx教程
  4. python简单实现用户表单登录
  5. Bzoj1150 数据备份Backup
  6. Octopus系列之开发中灵光点收集,先放到这里,后面会整理的
  7. MySQL提示:The server quit without updating PID file问题的解决办法
  8. openlayer调用geoserver发布的地图实现地图的基本功能
  9. Java异常处理面试题归纳
  10. luoguP2265 路边的水沟
  11. 自己做一台3D打印机到底有多难?(附教程)
  12. python初识(二)
  13. PHP trait
  14. 12 SharedPreferences
  15. java基础学习周计划之1--语言基础
  16. SpringMVC接收json数组对象
  17. T-SQL:qualify和window 使用(十七)
  18. this作用范围
  19. oracle 查询 磁盘使用率
  20. IDEA测试结果查看

热门文章

  1. shell source命令说明
  2. 分布式队列Celery入门
  3. U3D的一些常用基础脚本
  4. C语言再学习之 setjmp与longjmp
  5. leetcode 之Remove Duplicates from Sorted Array(1)
  6. int各种数据类型的表示范围
  7. 这是我在word 2010上发布的第一篇文章
  8. JQuery - 特殊字符转义(Uncaught Error: Syntax error, unrecognized expression:的处理)
  9. Hadoop案例(三)找博客共同好友
  10. 关闭webstorm自动保存,并显示文件未保存标识