我正在开发一个RSS阅读器,它将RSS源中的信息存储到feed
表中。我想每15分钟重新获取RSS源(尊重ETag和其他HTTP缓存头)以检测任何更新。我期待大约30,000个RSS提要,每个提供大约100个项目。
对于这个庞大且经常更新的数据集,使用Postgres xml
数据类型是否合理?或者我应该解析我的代码中的相关字段,这些字段提取Feed并将它们存储在Postgres表中的各个列中?
在SQL中:
create table channel (
id serial primary key,
xml xml
);
VS
create table channel (
id serial primary key,
title text,
link text,
description text,
-- etc.
);
RSS源不会每15分钟更改一次,我只是想经常检查以确保捕获任何更新。因为suppress_redundant_updates_trigger
似乎是一个不错的选择,但我不确定它是否适用于xml
数据类型,因为无法检查Postgres中xml
类型之间的相等性。将xml
转换为文本并以这种方式检查相等是否有意义?
我更喜欢使用xml
类型,因为这意味着我不必预测RSS提要的内容。我可以使用xpath
获取所有内容并动态获取所需信息。在经常更新的大型数据集中使用xml
类型是不是一个坏主意?