赞
踩
一、 表字段设计
1. 数据类型尽量用数字型,数字型的比较比字符型的快很多。
2. 尽量不要允许NULL,可以用NOT NULL+DEFAULT代替。
3. 少用TEXT和IMAGE,二进制字段的读写是比较慢的,而且,读取的方法也不多,大部分情况下最好不用。
4. 自增字段要慎用,不利于数据迁移
二、 编码过程需要注意
1. 只返回必要的字段
不要写select *
2. 要显示的写出连接的类型
内连接就是inner join
左连接是 left join
右连接是 right join
外连接是 out join
3. 不可以把查询语句写在字段中,转换成inner join
SELECT a.id userId,isnull(groupId,0) groupId,(select name from erp..tb_code_base where id = groupId and pId = 29)departName,
转换成
Inner join
4. 子查询的使用
1) not in,not exists 需要改成 left join 来实现功能
例如
SELECT PUB_NAMEFROM PUBLISHERS WHERE PUB_ID NOT IN(SELECT PUB_ID FROM TITLESWHERE TYPE = ’BUSINESS’)
需要改成
SELECT A.PUB_NAME FROM PUBLISHERS A
LEFT JOIN TITLES B ON B.TYPE = ’BUSINESS’ AND
A.PUB_ID=B. PUB_ID
WHERE B.PUB_ID IS NULL
2) in exists 需要改成 inner join 来实现。
5. 索引的使用
1) 不要对索引使用函数
例如WHEREDATEDIFF(DAY, 日期,’2005-11-30′)=0应改为:WHERE 日期>=’2005-11-30′ AND 日期 <’2005-12-1‘
2) 不要对索引字段进行多字段连接
例如 WHERE FAME+ ’.’+LNAME=‘HAIWEI.YANG’
3) 连续型的数字 in 用 BETWEEN AND代替
例如 SELECT ID FROM T WHERE NUM IN(1,2,3)
使用SELECT ID FROM T WHERE BETWEEN 1 AND 3
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。