这样每次去读取上百万条数据,不崩掉才怪,
我的想法是,你分批去查,然后分批导出,
类似于分页,每1000 或者更多为一批
按批次去执行,然后做一个进度条,按有多少批次为进度数进行导出
这样应该会好很多
还可以做个缓存机制,按批次进行存储,下次拿数据就直接从缓存中获取
1、数据库连接
是来自“数据库 *** 作支持库”。数据库连接功能型窗口组件 *** 作系统支持:Windows。本类型用来打开大多数数据库,起到数据库连接的作用。连接后,使用"数据库 *** 作"类型来 *** 作数据库表。
属性:
最后错误、是否已连接、对象提供者、引擎版本、
方法:
连接、连接Aess、连接SQLServer、关闭、执行SQL、取得权限、设置权限、设超时时间、取超时时间、开始事务、保存事务、回滚事务
2、外部数据提供者是来自“系统核心支持库”。外部数据提供者功能型窗口组件 *** 作系统支持:Windows。外部数据提供者用作为数据源提供对外部ODBC数据库的存取 *** 作。它使用外部数据库作为数据的存储仓库,不支持备注和长字节集类型字段,不支持以下数据 *** 作接口:
1、置行高;2、置类型;3、置文本色;4、置背景色;5、置字体名;6、置字体尺寸;7、置字体属性;8、置边距;9、置文本输入格式;
10、置对齐方式;11、置密码方式;12、合并;13、分解;14、加线条;15、删线条;16、初始尺寸时同时改变列数;17、在中间插入行;
18、插入列;
19、删除列。如果想对数据进行以上 *** 作,应该先将数据通过数据源导出到通用提供者中。另外,在支持数据源的“插入行”接口时,将直接插入空白行数据,所以如果目的数据表在某字段上建立了主键索引、强制不为空等类似列约束条件时,将导致插入失败。
属性:
左边、顶边、宽度、高度、标记、可视、禁止、鼠标指针、连接文本、查询SQL
3、区别外部数据提供者是系统自带的数据库连接控件之一,需要配合数据源使用。外部数据提供者提供数据库连接 *** 作,数据源提供对数据的 *** 作。而数据库连接直接管理数据和连接,更方便连接数据库和 *** 作
你可以查1W条,然后按每个数据100条来分。
$data = select from table limit 10000$chunk = array_chunk($data, 100);
print_r($chunk);
也可以每次查询 100 条
$start = 0;while($data = select from table limit $start, 100)
{
print_r($chunk);
$start += 100;
}
这个真不是你想快就能快的。ASP从数据库读取三万条数据这是一瞬间的事,也许就是几十毫秒的时间。但问题在于它把数据发送到你的浏览器时,这个速度就不是由程序所能决定的了。假如你的每条数据有200个字节(这个算是很保守的估计了),三万条数据就是57M,这还只是纯数据,如果再加上HTML标签就要接近10M,按照中国平均网速32M来算,实际下行速率就是400KB/s,则10M的网页数据在理想状态下就要25秒左右才能传送完毕。
对于ASP而言,能做的就是尽量减少发送的数据量,比如只发数据,不发任何修饰标签,由客户端(即浏览器)再通过JS代码对显示效果进行修饰;还可以对数据进行压缩等等。剩下的就是听天由命了。
此外,你的不分页的要求确实太苛刻了,这可是网络耶,不是你自家的硬盘!也许等以后千兆宽带成为现实后(中国肯定要打个折扣,有200M就谢天谢地了),你的梦想才能实现。
以上就是关于java 从数据库中读取大数据全部的内容,包括:java 从数据库中读取大数据、如何使用EXCEL读取外部数据库数据、PHP mysql 分批查询等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)