gpt4 book ai didi

mysql - 避免重复数据清理的最有效方法

转载 作者:行者123 更新时间:2023-11-29 13:57:50 25 4
gpt4 key购买 nike

我收到来自客户的数据,这些数据是一堆重复的信息。我将运行一个清理查询来获取转储的数据,进行一些清理,并最终将其放入一个新表中。

这是一个脚本:

INSERT INTO Spend (...)
SELECT ...
FROM Facilities F
JOIN Dump d
ON d.facname = f.name
AND f.city = d.city

到目前为止一切顺利。当有新的数据转储时就会出现问题。我只想得到最新的东西。我想不出一种看起来有效的方法。快速而简单的 WHERE NOT 子句不起作用(我不认为......),因为没有任何独特的唯一数据列。条目的独特性实际上仅取决于大多数(如果不是全部)列的组合。考虑到去年一家公司的转储有 20k 行,为每个转储循环遍历所有这些似乎是一个糟糕的主意。一旦我们在这里获得一些用户并将数据追溯到一年多前,似乎清理工作就过于密集了。

或者也许我只是一个小白,正在小题大做。感谢您的任何建议或指点-

<小时/>

编辑#1

附加示例记录集的图像 enter image description here

第一列是 Business 表中企业 ID 的外键。剩下的就是购买记录。这个表是用来搜索的。那么,在清理并转储到新的可搜索表中之后,唯一唯一的列就是每行的自动递增 ID。

最佳答案

消除事务型数据库冗余的关键是规范化;每增加一个程度的标准化就会消除另一个潜在的冗余源。

就您的情况而言,我推断您有几个冗长的文本字段,这些字段会使主数据表中的索引膨胀。我建议您将每个数据放入其自己的查找表中,并使用主数据表中的(人工)外键查找。这将缩小主表中的键,从而降低索引高度并相应提高性能。同时,您还可以提高数据的标准化程度。

为了进行报告,随后将清理后的数据提取到辅助非规范化表(即数据透视多维数据集)中,以便最终用户更有效地访问。

关于mysql - 避免重复数据清理的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15560605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com