请教数据库检索速度问题(急在线等。。。)
我用写一个站内搜索程序为什么搜索100000条记录就好慢呢!我是就一般like 语句和%% 来实现搜索的! 为什么检索速度这么慢呢! 看看我的程序有问题吗?
有什么办法可以提高搜索速度,还有高手可不可以提供一点有名的搜索的技术核心!
<!--#include file="include/Conn.asp"-->
<%
Response.Buffer=true
If Response.IsClientConnected Then
Response.Flush
Else
Response.End
End If
%>
<%
keywords=Trim(Request("keywords"))
set rs=server.CreateObject("adodb.recordset")
sql="select Web,RegDate,Zycp,Qymc,qyjj from qyhy where Qymc like '%"&keywords&"%' order by Qymc asc"
rs.open sql,Conn,1,1
%>
<body>
<div align="center">
<p> </p>
<table width="98%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="25"> </td>
</tr>
</table>
<table width="98%" border="0" align="center" cellpadding="1" cellspacing="1">
<tr>
<td>
<form action="search.asp" method="post" name="leftform" target="_parent">
<div align="center">
<INPUT name="keywords" class=ibox id="keywords" size=30>
<INPUT style="FONT-SIZE: 14px; HEIGHT: 22px" type=submit value=" 搜索">
</div>
</form>
</td>
</tr>
<tr>
<td height="10" bgcolor="#EAF4FE">共有<B><FONT color="red"><%if rs.recordcount<0 then response.write "0" else response.write (rs.recordcount) end if %>
</FONT></B>个相关结果 检索关键字<font color="#FF0000"><%=keywords%></font></td>
</tr>
<tr>
<td><%
if rs.eof and rs.bof then
response.write"<font color=red>没有找到相关信息..</font>"
else
If Request.QueryString("page")="" Or IsEmpty(Request.QueryString("page")) Then
page=1
Else
page=Cint(Request.QueryString("page"))
End If
Rs.PageSize=12
totalpage=cint(rs.recordcount/rs.pagesize)
if totalpage<(rs.recordcount/rs.pagesize) then
totalpage=totalpage+1
end if
If page>totalpage Or page<0 Then
page=1
End If
i=1
rs.Absolutepage=page
keyw=Cstr("<font color=red>"&keywords&"</font>")
set qymc=rs("qymc")
set zycp=rs("zycp")
set qyjj=rs("qyjj")
set web=rs("Web")
set begindate=rs("RegDate")
do while not rs.eof
if rs.eof or i>rs.pagesize then exit do
%>
<table width="80%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><a href="<%Response.write(Web)%>" target="_blank"><%response.write(replace(qymc,keywords,keyw))%></a></td>
</tr>
<tr>
<td><% Response.write(replace(zycp,keywords,keyw))%></td>
</tr>
<tr>
<td><%Response.Write(replace(mid(qyjj,1,60),keywords,keyw))%>...</td>
</tr>
<tr>
<td><font color="#009900"><%Response.Write(web)%> <%Response.write(regdate)%></font></td>
</tr>
<tr>
<td height="10"></td>
</tr>
</table>
<%
i=i+1
rs.movenext
loop
%></td>
</tr>
</table>
<table width="90%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="25">
<%
'page=totalpage
if totalpage>1 then
for i=1 to totalpage
if ((i<=(page+5)) and (i>=(page-5))) then
if (page=i) then
response.write(" "&i&"")
else
if i=(page+5) then
response.write(" <a href=?keywords="&keywords&"&page="&i-4&"><strong>下一页</strong></a>")
elseif i=(page-5) then
response.write(" <a href=?keywords="&keywords&"&page="&i+4&"><strong>上一页</strong></a>")
else
response.write(" [<a href=?keywords="&keywords&"&page="&i&"><strong>"&i&"</strong></a>]")
end if
end if
end if
next
end if
end if
%>
</td>
</tr>
</table>