搜索引擎优化宝典 pdf(发布一条企业网站用的SQL语句之所以一定要说是企业站)
优采云 发布时间: 2022-02-16 22:02搜索引擎优化宝典 pdf(发布一条企业网站用的SQL语句之所以一定要说是企业站)
为企业 网站 发布分页 SQL 语句
之所以必须说企业网站使用的分页SQL是因为它可能存在性能问题。一般企业站的数据量比较少,所以暂时忽略性能问题,企业站和新闻论坛站不同。栏目和帖子比较固定,显示也很固定,更多时候是为了seo体验,杜绝大部分目录页的页码和内容不匹配的现象,导致搜索体验降低的问题
主要体现在分页后的排序,例如:我今天更新了5篇文章,按照传统的分页方式,按照上次更新的倒序,即page=1,显示这5文章文章,搜索引擎进来了,收录,两天后,又添加了五篇文章文章,他的分页url是page=1。而最后添加的文章变成page=2,
然后有人在搜索引擎上搜索之前添加的五个文章之一的标题,结果可能显示为page=1,因为上次搜索引擎收录,他的url是page =1,而且搜索引擎更新我们网站不是那么快,而我们一般企业网站不可能每天都做搜索引擎更新,结果会变成搜索结果文本不是对了这一现象导致用户进来看看。如果没有他们想要的内容,他们会立即关闭浏览器,浪费大量用户。
而且看了很多人写的分页,没见过这样的分页(可能存在很大的性能问题),那我就展示一下。主要功能是使用
SET ROWCOUNT{number|@number_var} 这个语句,它的作用是读完数行后停止读。网上说明书说一般是和select top number配合使用的,就是说设置好数字后,可以如果省略了select top number,他自己拿了这么多块就不会看了。其中,numer为非负整数。当数字为0时,表中的所有数据都将被取出。因此,我们不需要构造最后一页的语句,他可以自己取出最后一页
我的SQL语句如下
CREATEprocedureselectPageDate
@pageIndexint,--当前页码 @pageSizeint--每页要显示的条数为
declare@rowCountint--总共有多少行 declare@pageCountint--总共有多少页 declare@SelectCountint--预计要取出多少
--
声明一个临时表,declare@tempTabletable(idint,ProductNamenvarchar(255),pageCountint)
--计算商品总数 select@rowCount=count(*)fromProduct
/*-------------计算页数------------*/if(@rowCount%@pageSize >0)
beginset@pageCount=@rowCount/@pageSize+1endelsebeginset@pageCount=@rowCount/@pageSizeend
/*计算取出多少*/set@SelectCount=@Pagesize*@PageIndex
——关键位置在这里。他不会拿出这么多条目。首先,取出当前页面所需的所有条目,然后按正序排序。因为我比较懒,所以不使用sql的返回参数。返回 select setrowcount@SelectCountinsertinto@tempTableselectId,ProductName,@pageCountfromGoodLifeProductorderbyidasc 中的总页数
--检索当前页面所需的条目数。由于我们只是在临时表中有正序,所以我们需要的页码在后面,所以逆序也可以记录页数对应setrowcount@pageSizeselect*from@tempTableorderbyIddesc
而且我看了一下,这个和top paging差不多,但是top paging可能第一页快,后面慢,但我的正好相反,前面越慢,后面越快,上面说了不需要构造第一页的sql,其实就是把page默认设置为0,他可以取出最后一页,但是取出的异常收据太多了。
ps:个人感觉这个不需要拼接SQL,而且逻辑很清晰,一看就懂
当然,你得改造你的页码显示控件,让它轮流显示。我已经改变了自己,所以让我们展示一下。
反向页码显示控件
用法是给出3个属性
页数 = 10;
页面索引 = 2;
NavigatorStringFormat = page.aspx?page{0}