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