存储IP投票:SQL与NoSQL

时间:2017-05-24 02:14:55

标签: mysql sql list ip nosql

我想跟踪特定IP投票人员的项目ID。所以一个模式如下:

IP |票

IP1 | 563,342,343,654,12(这些是项目ID)

IP2 | 1,235,1245,895,326

这显然违反了投票栏中的原子性,大多数人都会建议将其正常化并使用外键。

但我的问题是我想每个IP只保留1条记录。我认为它会提高性能,因为可扩展性是一个问题,并且行数在一段时间后会变成灾难性的。通过整个表只是为了找到所有IP1或IP2将是一场噩梦。

我是设计架构的新手,所以像NoSQL这样的东西会更适合这种类型的东西,因为那个列表会不断增长?或者是否有RDBMS解决方案?

1 个答案:

答案 0 :(得分:1)

"我和其中的大多数人都是正确的。像你所建议的模式,每个IP都有一行而牺牲关系完整性和一致性并不会表现得更好,事实上,它会在相当短的时间内给你带来相当大的麻烦。不要这样做。关系数据库可以处理的比你想象的要多,尤其是使用正确的索引。

是否应该使用NoSQL是一个单独的问题。如果您主要关注单个IP地址的投票,则可以使用文档数据库(例如),可以保持投票记录的自包含,以避免加入外部文档,并且不太关心切片和切割聚合。我不知道你在设计什么,但我怀疑关系方法很可能适合它。