仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 850|回复: 7
打印 上一主题 下一主题

[学习教程] 有用的年夜数据量分页存储历程

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 14:18:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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重新启动时丢失
小魔女 该用户已被删除
沙发
发表于 2015-1-18 12:49:59 | 只看该作者
如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。
活着的死人 该用户已被删除
板凳
发表于 2015-1-25 22:16:36 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
老尸 该用户已被删除
地板
发表于 2015-2-4 09:34:17 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
冷月葬花魂 该用户已被删除
5#
发表于 2015-2-9 21:30:23 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
若相依 该用户已被删除
6#
发表于 2015-3-9 16:21:56 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
只想知道 该用户已被删除
7#
发表于 2015-3-17 01:07:55 | 只看该作者
Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。
爱飞 该用户已被删除
8#
发表于 2015-3-23 11:50:10 | 只看该作者
XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 23:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表