sql优化

来源:互联网 发布:脱水研报 知乎 编辑:程序博客网 时间:2024/05/16 09:44

      使用数据库,mysql,以下时从sql语句的角度进行查询优化。

    1、 where A="abc" ,group by A ,order by  A      A字段如为字符串类型,务必建索引

    2、       (1) 日期类型 用long代替,以方便查找,精确到毫秒的整型 。 

                 (2) char类型多用varchar代替。

    3、 如int类型,像 gender(只有男、女 两种) ,则不需要建索引。

    4、 避免全表扫描:

                        会进行全表扫描的语句

                        <1>        A   !=  0     A <> 0

                                  避免方式:尽量避免这种方式

                       <2>       where   A  like "%abc%"  

                                  避免方式:索引为前缀匹配,这样的查询语句不会走索引。 如需走索引可以考虑用  A like "abc%"

                        <3>        A  is null   , A is not null

                                  避免方式: 对A进行默认为0的赋值,    A=0

                        <4>        A  = 0   or  A = 1

                                  避免方式: select C from B where A=0   union  select C from B where A=1

                        <5>       A in (1,2,3)     A not in(1,2,3)

                                  避免方式: 如果像A in(1,2,3)这样连续的,可以用between 1 and 3 代替。 或者可用exists代替

                        <6>      A/2 = 2

                                  避免方式:A = 2*2  同理,不要对A进行像substring(A,0,2)='aa'表达式处理

    5、sql语句查找少用select *,而应select到具体字段,eg: select id,name from B;

         PS:    像select count(*)  from  B  这样的语句多用  select   count(id)from  B  代替。当然统计的话也和搜索引擎有关。

0 0
原创粉丝点击