Database 在H2中创建多个模式是否是一种良好的分片和性能策略?
在邮件列表中,有人暴露了以下问题:Database 在H2中创建多个模式是否是一种良好的分片和性能策略?,database,schema,h2,sharding,Database,Schema,H2,Sharding,在邮件列表中,有人暴露了以下问题: 我们有数百万用户(每个用户1到5 MB的数据) 给定的用户数据不访问或修改其他用户数据 如何在保持性能的同时使用H2实现分片 其他人回答如下: 您可以为每个用户创建一个架构 好处是用户数据将位于单独的表实例中 因此,这将提高更新这些表时的性能 我的问题是: 有人尝试过这个吗 这真的是一个有趣的策略来共享数据并提高/保持性能吗 如果您有数百万用户,每个用户平均有2MB的数据,那么您将获得大约2TB的容量。我认为存储在一个数据库文件中太多了。另一方面,您也
- 我们有数百万用户(每个用户1到5 MB的数据)
- 给定的用户数据不访问或修改其他用户数据
- 如何在保持性能的同时使用H2实现分片
- 您可以为每个用户创建一个架构
- 好处是用户数据将位于单独的表实例中
- 因此,这将提高更新这些表时的性能
如果您有数百万用户,每个用户平均有2MB的数据,那么您将获得大约2TB的容量。我认为存储在一个数据库文件中太多了。另一方面,您也不想使用数百万个数据库文件 我会使用多个数据库,每个数据库最多有1000个用户(取决于数据量) 然后,您可以创建多个模式(但请注意,对于H2,模式元数据保存在内存中),或者向每个表添加一个“userId”列