mysql优化

来源:互联网 发布:北京超图软件怎么样 编辑:程序博客网 时间:2024/06/04 20:09
1. select * 避免用*号
2. limit 1 
3. 能用int 不用string
4. 位数能少尽量少
5. 能用枚举类型尽量用
6. 给常用的字段添加索引
7. 尽量避免NULL:应该指定列为NOT NULL,除非你想存储NULL。在MySQL中,含有空值的列很难进行查询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。
8.使用表的别名
      salgrade s
9.使用列的别名
      ename e
10.字符串型,能用=号,不用like
      因为=号表示精确比较,like表示模糊比较
11.SQL语句用大写的
      因为Oracle服务器总是先将小写字母转成大写后,才执行
      在eclipse中,先写小写字母,再通过ctrl+shift+X转大写;ctrl+shift+Y转小写ke表示模糊比较 
12.避免在索引列上使用NOT
      因为Oracle服务器遇到NOT后,他就会停止目前的工作,转而执行全表扫描
13.避免在索引列上使用计算
      WHERE子句中,如果索引列是函数的一部分,优化器将不使用索引而使用全表扫描,这样会变得变慢 
      例如,SAL列上有索引,
      低效:
      SELECT EMPNO,ENAME
      FROM EMP 
      WHERE SAL*12 > 24000;
      高效:
      SELECT EMPNO,ENAME
      FROM EMP
      WHERE SAL > 24000/12;
14.用IN替代OR
      select * from emp where sal = 1500 or sal = 3000 or sal = 800;
      select * from emp where sal in (1500,3000,800);