我们有一个带有 MySQL 后端数据库的 Web 应用程序。 Master表大约有170000条记录。客户端功能允许他/她上传具有与 Master 中相同的列的 Excel 工作表,并包含大约更新的 1000 条记录。目标是根据 id 列(两端都存在)更新 Excel 主表,但仅更新少数列。响应时间是一个关键因素。
那么我们在ASP.NET中所做的事情如下:
- 将 Excel 工作表上传到服务器
- 创建一个数据表并更新其中Excel工作表的所有内容
- 现在根据某列属性查询Excel数据库并逐条更新记录
目前,此过程大约需要 19 分钟才能更新约 1300 条记录。那么怎样才能提高更新速度呢?
我们还观察到像下面这样的 MySql 更新查询也需要很多时间:
update " + Session["Circle"].ToString() + ".retail n," + Session["Circle"].ToString() + ".upload o set n.VillageName=o.VillageName, n.TehsilName=o.TehsilName, n.DistrictName=o.DistrictName, where n.Retailer_MSISDN=o.Retailer_MSISDN;
最佳答案
确保 Retailer_MSISDN
是唯一的并已编入索引。您可以通过以下方式为 Retailer_MSISDN
创建索引:
ALTER TABLE my_table
ADD INDEX Retailer_MSISDN(Retailer_MSISDN);
按索引列进行查找将减少查找时间。
关于asp.net - 使用 ASP.NET 从 Excel 更新大型 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134465/