数据库的分批查询问题

在开发某个要操做数据库的项目时候,我忽然想到如何数据库的数据量太大,通常项目设计的时候,会一次读取全部的数据到内存中,这有可能形成内存的溢出,或者系统效率的下降。那么咱们如何设计一个开发方案来解决这中问题呢?sql

百度了一个说法:
在查询的数据量比较大时,咱们会采用分批查询的方式来查询数据库。
这是由于数据库会把知足查询条件的全部记录都装载到内存,形成大量资源被占用,严重影响系统运行的效率。
可是,数据库固有的存储过程不支持物理分页,因此若是采用分批查询方式,还须要开发人员编写本身的存储过程来实现。 具体的实现请从网上找,实现方式大体差很少!
这样,服务端每次只把若干条(通常20条)记录返回给客户端,这样,既节省资源,又加快通信的效率!数据库

 

可是,发现上面没有给出具体的分批查询设计实现方案。因此但愿你们能交流下心得,最后有具体案例的实现方式和方法。性能

特别是在小型嵌入式设备中,采用的是sqlite数据库,数据量大的话,基本必须采用分批查询,分页查询才行。优化

搜索的方案设计

(1)经过sql分页查询语句,利用的表中的某个字段分组分页orm

select * from users order by id limit 10 offset 0;//offset表明从第几条记录“以后“开始查询,limit代表查询多少条结果sqlite

运用:
sqlitecmd.CommandText = string.Format("select * from GuestInfo order by GuestId limit {0} offset {0}*{1}", size, index-1);//size:每页显示条数,index页码内存

(2)语句性能要优化,避免查询数据的性能资源

相关文章
相关标签/搜索