1. 数据库结构优化
a. 比如一些标志信息是否认证之类的字段要建索引却没有建
b. 表没有设主键,加上主键
c. 外键一般都要加上索引
2. 程序优化
a. 当只限取前面N条记录时,不要用 select * ,然后再用ADO分页
改为 select top N 字段列表 这样的语句会高效很多
b. 统计记录数时不要用 select * from .... 这样的语句,改
用 select count(1) from .... 这样会好很多
c. 尽量避免使用 select * from table 这样的sql语句,这样会导致程序从数据库里读取太多无用的数据,一般来说应该使用
select 字段1,字段2 from table 这种形式,只从数据库里读取必要的数据,这样能大大提高程序读取数据库的效率
d. 不要用嵌套查询,比如
<%
sql = "select col1,col2 from a"
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,1
while not rs.eof
sql2 = "select col1,col2 from b where id=" & rs("id")
set rs2 = server.createobject("adodb.recordset")
rs2.open sql2,conn,1,1 '这里用了嵌套查询,效率会下降很多,如果数据库的时候根本没法运行
while not rs2.eof
response.write rs("id") & "=" & rs2("name")
rs2.movenext
wend
rs.movenext
wend
%>
如果改为
<%
sql = "select a.id ,b.name from a left join b on b.id=a.id" '使用连表操作,并用具体的字段名代替 *,程序是高效很多
set rs = server.createobject("adodb.recordset")
rs.open sql,conn,1,1
while not rs.eof
response.write rs("id") & "=" & rs("name")
rs.movenext
wend
%>
3. 如果网站的访问量大并且数据库查询操作的任务比较重,要考虑采用自动生成静态页面然后定时自动更新的技术
4. 对于 access 数据库:
access 数据是一个桌面型的数据库系统,它只能应付一些数据量少且访问量不大的网站,如果access的数据库超过
100M 以上,性能会急速下降,并且 access 数据库的数据库驱动程序只能应付同时15个进程共享,也就是说它多只能
允许15个人同时打开它,对于大访问量的网站来说这是很低的一个数值,所以一般访问量大或者是数据量大的网站一般
要采用 sqlserver 或者 mysql 等高性能的数据库服务器平台。
有很多人使用 access 数据库时并没有对数据库的结构进行优化,这也是造成网站程序效率低下的另一个重要