社区
C#
帖子详情
...........挑战数据库查询和文件读写极限......
hzhxxx
2007-01-16 04:58:11
...........挑战数据库查询和文件读写极限......
需要把数据库中一个数据表 3600W 条记录读出,写成一个 txt 文本文件
一条记录对应 txt 文件中的一行数据,有什么比较快的方式
1. 目前我准备每次取出100 条记录后通过(每次最多取这么多) 异步IO 的方式把数据写入
文本文件,这样我也需要 循环 36000次,每次就算0.5秒,但是这样初步计算了一下,大致
也要5 个小时啊,客户没法答应,怎么办
...全文
291
11
打赏
收藏
...........挑战数据库查询和文件读写极限......
...........挑战数据库查询和文件读写极限...... 需要把数据库中一个数据表 3600W 条记录读出,写成一个 txt 文本文件 一条记录对应 txt 文件中的一行数据,有什么比较快的方式 1. 目前我准备每次取出100 条记录后通过(每次最多取这么多) 异步IO 的方式把数据写入 文本文件,这样我也需要 循环 36000次,每次就算0.5秒,但是这样初步计算了一下,大致 也要5 个小时啊,客户没法答应,怎么办
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hzhxxx
2007-01-18
打赏
举报
回复
/*
WriteFileTest()
{
Console.WriteLine(DateTime.Now.ToString());
FileStream fStream = new FileStream("c:\\bb.txt",FileMode.Append);
const int length = 1024 * 6;
StringBuilder strvalue = new StringBuilder();
//Console.WriteLine("read start" + DateTime.Now.Millisecond.ToString());
for(int i = 0; i < 70000;++i)
{
for(int k = 0;k < 100;++k)
{
strvalue.Append(i);
strvalue.Append(";11");
strvalue.Append(";22");
strvalue.Append(";ggg");
strvalue.Append(";fffff");
strvalue.Append(";aaaa");
strvalue.Append(";22");
strvalue.Append(";ggg");
strvalue.Append( ";fffff");
strvalue.Append(";发大幅度");
strvalue.Append(";aaaa");
strvalue.Append( ";fffff");
strvalue.Append(";发大幅度");
strvalue.Append("\r\n");
}
//Console.WriteLine("read end" + DateTime.Now.Millisecond.ToString());
byte[]ImageContent = System.Text.Encoding.Default.GetBytes(strvalue.ToString());
//Console.WriteLine("write start" + DateTime.Now.Millisecond.ToString());
fStream.Write(ImageContent,0,ImageContent.Length);
//Console.WriteLine("write end" + DateTime.Now.Millisecond.ToString());
strvalue.Remove(0,strvalue.Length);
}
fStream.Close();
Console.WriteLine(DateTime.Now.ToString());
}
经过测试,这段代码的运行速度是最快的,写一个 477M 的文件耗时25s,效率的
瓶颈是内部的100次循环,组装字符串,IO 写操作非常快
各位看还有什么优化的措施
*/
hzhxxx
2007-01-17
打赏
举报
回复
经过测试 ,做 70000 次循环,每次循环里面再 100 次循环(模拟取数据),
使用 stringbuilder 预先开 1024 * 128 k 内存,循环使用这段内存,
最终写到一个文本文件。
同步模式: 25s,异步模式 26m,文件大小 为 477431KB,测试结果表明同步比异步快,
单线程模式
bitpolar
2007-01-16
打赏
举报
回复
这也算极限???
0.5秒执行一次也太慢了吧
一般服务器(我们公司服务器大致2W块钱左右)通过WebService执行登录大约支持1000次/秒
hzhxxx
2007-01-16
打赏
举报
回复
部署数据库备份一类的,导出的数据还要加工处理,比如说某个字段是值 1 写入文本文件是 正确,2 写入是错误
hzhxxx
2007-01-16
打赏
举报
回复
不能到数据库上操作,一定是需要调用别人的存储过程(别人提供的方法),所以每次才能得到100 条记录的限制,这个是无法改变的了
runrunrun
2007-01-16
打赏
举报
回复
用bcp命令
mobydick
2007-01-16
打赏
举报
回复
数据库图标上点右键->所有任务->导出数据
TheRule
2007-01-16
打赏
举报
回复
直接从数据库导出为一个txt文件不行吗?
joleo
2007-01-16
打赏
举报
回复
这个txt还打得开吗?
*****************************************************************************
http://www.poge.com.cn
三省Ta叔
2007-01-16
打赏
举报
回复
执行一次需要那么久吗?那不干脆找个打字的敲进去
GreatSQL 8.0与InnoDB Cluster部署 MGR集群
基于GreatSQL8.0和InnoDB Cluster部署MGR集群 本课程详细介绍如何利用GreatSQL和MySQL InnoDB Cluster构建MGR集群,并结合MySQL Router实现读写分离、读负载均衡以及故障自动转移架构。 课程详细演示集群部署过程,...
重磅丨国产数据库到底行不行?人大金仓KINGBASE数据库与主流开源数据库性能实测...
近年来,人大金仓的数据库产品受到了外界诸多的关注。做产品,免不了要接受用户的对比和选择,数据库因其行业的自身特点,还有很多开源的技术产品同台比拼,用户因此也会产生诸多疑问,国产数据库相比开...
深度 | 国产数据库到底行不行?金仓数据库审计性能实测
恶意入侵、违规越权操作等风险将会导致机密信息被窃取、泄露,但事后却无法有效追溯和审计,企业信息资产面临严峻的
挑战
。在此背景之下,数据库审计功能越显重要,越来越多的场景需要使用审计功能。数据库审计方式...
15个nosql数据库
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。主要解决的是海量数据的访问效率问题,为WEB应用提供可扩展的高性能数据存储解决方案。当数据量达到50GB以上的时候,MongoDB的数据库访问速度是MySQL的10...
企业面试
1、mysql读写分离,主从同步怎么00… 2、 配置的,如何降低延迟 读写分离配置:在项目中我们配置了两个数据源...所有的查询操作注入从的数据源,主从同步配置:首先找到主数据库的my.ini文件,在里边配置server-id ...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章