小编val*_*nas的帖子

哪个更适合长期数据库可扩展性:添加列或具有键/值存储

对于目前只有很少(5-10)个设置但将来会有更多(最多100个)设置的应用程序,这将是更好的方法:

  1. 每次引入新设置时向设置表添加新列
  2. 将设置表作为键/值存储

考虑到应用程序可能有数百万个实例(它们都在同一个数据库上运行并使用同一个表进行设置),数据库可能被分片。DB 是关系型的,即 MySQL 或 T-SQL。

作为开发人员,我更喜欢第二个变体,因此我可以在不更改数据库架构的情况下扩展应用程序并随意添加/删除设置。据我了解,如果索引聚集在应用程序实例上,那么在单个表中拥有几百万条记录应该不是问题。有什么我不知道的缺点吗?

那么第一个变体呢?有什么大的好处吗?那么列数呢:表可以包含的列数是否有任何理论限制?如果我有一个包含 1000 (10 000, 1000 000) 列的表会发生什么?那会不会很慢?

mysql database-design t-sql scalability eav

5
推荐指数
1
解决办法
2705
查看次数

标签 统计

database-design ×1

eav ×1

mysql ×1

scalability ×1

t-sql ×1