Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在H2中创建多个模式是否是一种良好的分片和性能策略?_Database_Schema_H2_Sharding - Fatal编程技术网

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”列