1

在我的项目中,我有一个大约 20 列的表格。我们在“状态”列上有分区表。为了简单起见,假设状态“错误”和“成功”有两个可能的值。因此,我们有两个分区,即表的 p1 和 p2。我们想要的是在每个分区上有不同的索引,因为选择查询将根据状态在 where 子句中使用不同的列。例如,分区 p1 需要在 column1 和 column2 上有索引,而分区 p2 需要在第 4 列和第 5 列上有索引。但是我了解到在 MySql 5.5 中无法在分区级别应用索引。

所以现在其他选择可能是为每个状态设置不同的表。我在应用层使用 Hibernate。是否可以配置 Hibernate 以使两个表都有一个实体类。这样当状态从“ERROR”变为“SUCCESS”时,记录会在后台自动从错误表移动到成功表。作为一名开发人员,我只需要处理 Entity 对象,而不必担心它是从哪个表中获取的。Hibernate 应该处理将数据从一个表移动到另一个表。这样我就可以在不同的表上维护不同的索引。这更像是手动分区而不是数据库分区。

我听说过 Hibernate Shard 项目。但是我认为当您对同一个表有不同的数据库时它很有用。在这里,我有一个数据库,其中有两个表用于同一实体。

4

0 回答 0