sql优化

      使用数据库,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  代替。当然统计的话也和搜索引擎有关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值