如何像navicat这样的数据库管理软件从表中选择大量数据

时间:2016-11-21 03:29:23

标签: c++ linux database navicat

我正在Linux平台上编写一个c ++程序。这个程序就像linux-mini-navicat,它可以连接到不同的数据库(postgresql,mysql,mssql,oracle)并执行sql.And程序启动一个接口服务器(thrift)用于客户端连接并执行sql命令。

当我执行“select * from table”时,它有大量数据,可能是一百万或一千万或更多,我的程序在将数据返回给客户端之前由linux终止,因为它没有内存。

我对navicat如何实现这一点感到好奇,我怎么能在我的程序中实现呢?

希望我明白我的问题。

1 个答案:

答案 0 :(得分:0)

通常不需要一次性从大表中检索(并保留在内存中)所有数据。如果要显示查询结果,则可以获取足够的数据来填充屏幕上的表,然后在用户滚动表时下载它。如果您开发了一些分析算法,您仍然可以分析块中的表数据。请参阅有关数据库引擎的可滚动游标的文档。