以SQL格式假设数百万行流量数据。
从列URL
和给定范围的每一行,我想得到一个与目标标记匹配的子字符串文本。
例如,在URL
列中,我有以下文字:
Column: `URL`
Row 1: http://www.google.com/abcdeft?&QQ=123&AA=america&YY=111
Row 2: http://www.google.com/abcdeft?&QQ=123&AA=asia&YY=111
Row 3: http://www.google.com/abcdeft?&QQ=123&AA=africa&YY=111
Row 4: http://www.google.com/abcdeft?&QQ=123&AA=south&YY=111
Row 5: http://www.google.com/abcdeft?&QQ=123&AA=south&YY=111
Row 6: http://www.google.com/abcdeft?&QQ=123&AA=&YY=111
Row 7: http://www.google.com/abcdeft?&QQ=123
...
Row 99999999: http://www.google.com/abcdeft?&QQ=123&AA=ddd&YY=111
数据不断加载大量更新。因此,性能确实重要。我的目标是:
使用唯一键标记&AA=
标识每一行。基本上我需要从每一行的标记&AA=
中获取字符串。例如,我希望来自africa
的{{1}}。 ~~&AA=africa&~~
如果没有None
但仍需要阅读每一行。
识别&AA=
中包含相同标记的重复行。例如第4行和第5行是重复的,因为它们具有相同的&AA=
AA
标记。
问题:哪种方式是未来数据处理的最佳方式?
选项1 。没有south
列
URL
列URL
库&AA=
的每一行
urlparse
标记的重复行。例如使用Python,我需要列出所有项目(所有标签)并在列表中找到重复的项目。AA
选项2 。为标记URL
插入另一个新列AA
,并在更新流量数据时开始填写新列。
这样:
&AA=
URL
中的文字以获取代码URL
通过这种方式,我们可以轻松地:
&AA=
&AA=
个数据
AA
使用SQL SELECT
函数重复行
哪一个表现更好?
答案 0 :(得分:2)
如果您能够承受额外列的额外空间成本,那么这将是最佳方法。如果AA有很多重复项,您可以考虑将其放在另一个表中,然后加入它进行查询。这将减少空间成本,并仍然给你所有的灵活性。如果您查询ID而不是AA的文本值,它会使它更容易(查询更快)。