1.用于不要使用select * from table xxx。

   需要查询哪些列就在语句中指明,一个表结构复杂时,可能会有上百列,使用*来查询时会造成很大的浪费。

  2.选择合适的属性及大小

     例如邮政编码使用char(6)就要比varchar(255)合适的多,省份、性别定义为enum也会提高效率。

3.使用join来代替子查询

   原因是MySQL将不用创建临时表来完成2步操作。

   select  name,age from a where id not in (select id from b);可以用下面的语句代替:

     select name,age from a left join b on a.id = b.id where b.id is null;

4.有索引的字段不要使用函数,会使索引失效

   select id,times from count where total /7<24;应该改为:

     select id,times from count where total<24*7;

  5.使用explain来判断语句的效率

  6.最左原则,(a,b)做联合索引时,where a = ?时会使用索引,where b = ?时不会使用索引。

     (a,b,c)做联合索引时,where a = ?and b = ?时会使用索引,where b = ?and c = ?时不会使用索引。

  7.使用like时,开头不要使用%,否则索引会失效。应该使用like ‘abc%’而避免like ‘%abc%’。

  8.MySQL的一些操作将会产生临时表,这些操作应该避免:

   1>group by一个无索引的列,就会产生临时表

     使用join时,group by任何列都会产生临时表,order by也是一样的

   2>distinct非索引列会产生临时表

      3>可以使用explain查看extra字段,如果是filesort就说明使用了临时表。说明MySQL已经无法通过索引来排序,需要额外的空间来排序。

  9.向一张表插入若干条数据:

     insert into table(column1,column2,column3) values(1,1,1),(2,2,2),...(n,n,n);

  10.很多的语句一次执行,批处理,减少建立连接的次数

最新文章

  1. loadrunner目录分析
  2. paip.spring3 mvc servlet的配置以及使用最佳实践
  3. MySQL字符串类型转换时间类型
  4. 【制作镜像Win*】文件准备
  5. .net ajax式上传文件
  6. redis学习大全
  7. Java编程思想-注解生成外部例子代码
  8. Robotium源码分析之Instrumentation进阶-attach
  9. iOS获取用户设备崩溃日志并分析
  10. python 浅析IO 模型
  11. jmeter笔记(3)--响应结果中文乱码的解决方式
  12. OpenCV中 常用 函数 的作用
  13. Kubernetes 笔记 03 扫清概念
  14. Http协议中get和post的区别
  15. 分类统计的controller和service
  16. ida快捷键
  17. 牛客练习赛1 A - 矩阵
  18. Adobe Acrobat Pro 修改背景色
  19. ASP.NET Session原理及处理方法
  20. final static 修饰(转载)

热门文章

  1. noip级别数论?
  2. Quoit Design(最近点对+分治)
  3. Shell菜单脚本
  4. phpcms模板生成原理
  5. 利用Selenium+PhantomJS 实现截图
  6. easyUI返回类型total,rows
  7. 【自制工具类】struts返回json数据包装格式类
  8. 记node前后端代码共用的一次坑
  9. vue2.0项目中使用Ueditor富文本编辑器示例
  10. iis配置完成,出现HTTP 错误 403.14 - Forbidden