|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Mysql的存储引擎接口定义良好。有兴趣的开发者可以通过阅读文档编写自己的存储引擎。数据分页的主要性这里就不必重提了,那末怎样完成年夜数据量的分页呢?以下供应一个分页的存储历程,仅供参考
createprocsp_PublicTurnPageWebSite(
@TBNamenvarchar(100)=,--表名,如pinyin
@PageSizeint=10,--每页的纪录数,默许为10
@CurPageint=1,--暗示以后页1
@KeyFieldnvarchar(100)=ID,--关头字段名,默许为ID,该字段请求是表中的索引或无反复和不为空的字段
@KeyAscDescnvarchar(4)=ASC,--关头字的升、降序,默许为升序ASC,降序为DESC
@Fieldsnvarchar(500)=*,--所选择的列名,默许为全选
@Conditionnvarchar(200)=,--where前提,默许为空
@Ordernvarchar(200)=--排序前提,默许为空
)withencryptionas
if@TBName=
begin
raiserror(请指定表名!,11,1)
return
end
if@PageSize<=0or@CurPage<0
begin
raiserror(以后页数和每页的纪录数都必需年夜于零!,11,1)
return
end
if@KeyAscDesc=DESC
set@KeyAscDesc=<
else
set@KeyAscDesc=>
if@Condition
set@Condition=where+@Condition
declare@SQLnvarchar(2000)
set@SQL=
if@CurPage=1
set@SQL=@SQL+SELECTTop+cast(@PageSizeasnvarchar(20))++@Fields+FROM+@TBName+@Condition++@Order
else
begin
declare@iTopNumint
set@iTopNum=@PageSize*(@CurPage-1)
set@SQL=@SQL+declare@sLastValuenvarchar(100)+char(13)
set@SQL=@SQL+SELECTTop+cast(@iTopNumasnvarchar(20))+@sLastValue=+@KeyField+FROM+@TBName+@Condition++@Order+char(13)
declare@Condition2nvarchar(200)
if@Condition=
set@Condition2=where+@KeyField+@KeyAscDesc+@sLastValue
else
set@Condition2=and+@KeyField+@KeyAscDesc+@sLastValue
set@SQL=@SQL+SELECTTop+cast(@PageSizeasnvarchar(20))++@Fields+FROM+@TBName+@Condition+@Condition2+@Order
end
EXECUTEsp_executesql@SQL
Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失 |
|