数据库查询优化

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:02:47
Web应用程序中用得最多的就是数据库的读写了,最常见的是列表,比如文章列表,帖子列表,用户列表,等等。而列表中往往需要进行分页。通常的情况是用conn的open方法打开数据库,读出所有的记录,放在内存里,再从中截取某一页里的内容。对于一般的小型网站,由于其数据库里的记录并不多(不超过一万条)这样做并不会很影响程序的效率,但是当数据库里的记录很多,十万,一百万,或者更多的时候,用这种方法进行分页的话,程序执行起来就变得很慢了,尤其是访问量很大的时候,程序更加显得力不从心。

最好的解决办法是根据当前的页码,计算出要读出哪些记录,再用程序对数据库操作,只读出所需要的那部分。这就要对SQL语句进行优化:

SQL语句中只能查询前N条记录,而我们优化的思想在于让SQL语句能查询出后N条记录。方法应该很多,这里我提供一种方法:

{查询 数据库中所有 [不属于前100条] 的记录 中的[前100条]}

其实是一个减法运算。比如一个用户列表中,一页列出100名用户,当我们要查找第二页的用户时,就可能用下面的语句进行查询了:

select top 100 * from 用户表 where id not in(select top 100 id from 用户表) order by id

虽说SQL语句长了一些,但是效率却高出了很多。
要运用上面的原理就要对它做一些改造了,有兴趣的可以去群22654343看看,谢谢
本帖不是提问题,谢谢

你要问什么?分页当然要用存储过程了。

楼上还没看清楚问题就的回答,是分页吗?人家说的是优化,懂不懂,不懂就别在这装,看来菜的不是别人,是你菜,真菜!