vb.net Mysql跑一张大表,目前行数为250万,栏位数约28个,跑不动了

如题

有什么方式可以优化我这个表格

现在用16G的内存或是32内存的电脑都没有办刚整跑出

感谢!

以下是我表的栏位,由于无法避免,大部分都用了varchar

图片说明

不知道你说的跑是什么意思,是什么代码。千万不要一次性读取到DataTable,可以用DataReader一行一行读,然后一行一行插入或者写文件。

可以从3个方面优化:
1. 库表设计,都选用varchar(255),虽然是可变字长,仍然存在数据页分页的问题,应尽量按业务分析,给与int或定长char或缩减varchar长度
2.一般应用,都是针对某种条件下的数据需求,全部取出没有应用索引的优化余地,考虑一下,是否能做出某种程度的过滤(例如机构维度,时间维度等)
3.如果是工具层面,可以在客户端考虑逐条读取并处理(例如对datareader循环取数),也可以考虑按页获取数据并处理(例如根据mysql的limit语句,写取数sql如下, select * from table limit (start-1)*count,count;, 其中start指第几页,count值每页的记录数)