求助:文件纪录插入Mysql速度真慢慢 本帖最后由 woshishui1010 于 2009-10-16 18:18:35 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 单纯从程序角度来看,没有什么问题了。但从系统架构上来看:1 先将原来的表全部打开,然后用Locate会不会快一些?(不确定,需要测试)2 field1字段是否建立有索引?3 文本文件中是否可能有重复记录?如果不存在重复记录,可以先将插入语句导入为一个文本文件,然后批量执行,或者将经程序处理后的数据另外保存为一个文本文件,然后用load data in file导入。另外,你说速度太慢,是有多慢,有没有显示导入进度?根据机器的不同,如果每秒钟导入100条数据左右的话就不能算慢。 回 windindance :文件文件中的整条记录是唯一的。每条文本纪录由多个字段值组成,由"~~~~~"分隔。插入/更新到数据库表的字段均有多个,有的字段有索引,有的没有,主帖中我只写了一个,为了简单。________________________________________________________主贴补充:一、涉及到的几个数据库表,有的是按月分表的,有的是按季分表的,表的字段少的有20多个,多的有70多个。二、数据表每天均有新数据要Insert 或 Update ,数据表的月纪录数在300W左右。三、插入的数据有不少均须通过delphi程序分析计算后再插入/更新到数据库表。由于上面的一些特性,似乎不能:(文本文件中是否可能有重复记录?如果不存在重复记录,可以先将插入语句导入为一个文本文件,然后批量执行,或者将经程序处理后的数据另外保存为一个文本文件,然后用load data in file导入。)四、本来产生文本数据时,就可以 insert / update到数据库,但我为了加快数据采集的速度,所以我把采集数据逻辑独立出来了。这样我也好维护。 你是在客户端上传的?这样的话严重受限于网络速度。你可以把客户端的文本文件压缩后上传到服务器,在服务器上执行。(因为在客户端上传的话,容易出错且无法压缩。)插入/更新到数据库表的字段:查询的字段要建立索引即可。先将插入语句导入为一个文本文件:生成文本文件:insert t() ....update t set ...insert t()....然后将这个文本文件压缩,上传到服务器,执行。 chart横坐标问题 如何使窗口启动顺序对换 D6 升级到 D8 需要注意哪些问题? 一个小问题,不太好用简短的话描述,麻烦大家进来看看,指点一下。 请问一个 画折线的问题!!谢谢啦!! 关于报表设计的一个问题,请大虾们指教!谢谢!在线等... 超简单问题!代码如何换行写? 奇怪了,大家看看! 有谁试过网上赚钱吗? 怎么实现在应用程序运行的任何时候按F1出发一段程序? 发个比晚帖 -_-||| Delphi 同一个用户不可以同时在两台机器上登录,怎样实现?
但从系统架构上来看:
1 先将原来的表全部打开,然后用Locate会不会快一些?(不确定,需要测试)
2 field1字段是否建立有索引?
3 文本文件中是否可能有重复记录?如果不存在重复记录,可以先将插入语句导入为一个文本文件,然后批量执行,或者将经程序处理后的数据另外保存为一个文本文件,然后用load data in file导入。另外,你说速度太慢,是有多慢,有没有显示导入进度?根据机器的不同,如果每秒钟导入100条数据左右的话就不能算慢。
文件文件中的整条记录是唯一的。每条文本纪录由多个字段值组成,由"~~~~~"分隔。
插入/更新到数据库表的字段均有多个,有的字段有索引,有的没有,主帖中我只写了一个,为了简单。
________________________________________________________
主贴补充:
一、涉及到的几个数据库表,有的是按月分表的,有的是按季分表的,表的字段少的有20多个,多的有70多个。
二、数据表每天均有新数据要Insert 或 Update ,数据表的月纪录数在300W左右。
三、插入的数据有不少均须通过delphi程序分析计算后再插入/更新到数据库表。由于上面的一些特性,似乎不能:
(文本文件中是否可能有重复记录?如果不存在重复记录,可以先将插入语句导入为一个文本文件,然后批量执行,或者将经程序处理后的数据另外保存为一个文本文件,然后用load data in file导入。)四、本来产生文本数据时,就可以 insert / update到数据库,但我为了加快数据采集的速度,所以我把采集数据逻辑独立出来了。这样我也好维护。
你可以把客户端的文本文件压缩后上传到服务器,在服务器上执行。(因为在客户端上传的话,容易出错且无法压缩。)插入/更新到数据库表的字段:查询的字段要建立索引即可。先将插入语句导入为一个文本文件:
生成文本文件:
insert t() ....
update t set ...
insert t()....
然后将这个文本文件压缩,上传到服务器,执行。