繁体   English   中英

如何在超过 1,000,000,000 条记录中更改 substring?

[英]How to change substring in more than 1,000,000,000 records?

我有一个包含dbValuesdbKeys列的数据库表。 dbKeys值是一个字符串,其中包含用;分隔的键。 .

dbKeys 1: "name;age;color;...price"
dbKeys 2: "city;street;age;...favourite_meal"
...

dbValuesdbKeys具有相同的格式,但包含此键的值。

dbValues 1: "Peter;18;blue;...64"
dbValues 2: "London;Main;40;...applepie"
...

有超过1 000 000 000行。 我需要从键所在的所有记录中删除一些键及其值,例如age键,因此结果将是:

dbKeys 1: "name;color;...price"
dbKeys 2: "city;street;...favourite_meal"
...

dbValues 1: "Peter;blue;...64"
dbValues 2: "London;Main;...applepie"
...

您有什么建议如何以最有效的方式修改dbKeys列中具有特定键值的所有记录? 我更喜欢 SQL 或 .NET / C# 中的一些东西。

我的解决方案是为所有记录(或每 1000 条记录)创建循环并分别更改每条记录。 但这对我来说似乎不是很有效。 所以我愿意接受任何其他建议。

这在 SQL 中将非常困难,但在 C# 中非常容易。 只是:

  • 加载记录
  • 使用String.Split()将值(对于两列)拆分为列表
  • 循环遍历键。 如果匹配,则从两个列表中删除索引。
  • 使用 String.Join() 将列表重新加入字符串
  • 保存记录

您可能希望批量保存而不是单独保存。

当然,首先以这种形式存储数据并不理想。 但你可能已经知道了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM