首页 > 解决方案 > 大表和小表的休眠动态更新性能

问题描述

我的项目中有巨大的 mysql 表。我在我的 java EE 项目中也使用了 hibernate。表结构如下

CREATE TABLE `syncdirectionanddate` (
  `username` varchar(100) NOT NULL,
   accountsModifiedFromDate DATETIME,
   accountsModifiedToDate DATETIME,
   accountsModifiedCurrentDate DATETIME,
   accountsModifiedFromPage int,
   accountsModifiedCurrentPage int,
   customerModifiedFromDate DATETIME,
   customerModifiedToDate DATETIME,
   customerModifiedCurrentDate DATETIME,
   customerAndAccountsSyncDirection int,
   productsModifiedFromDate DATETIME,
   productsModifiedToDate DATETIME,
   productsModifiedCurrentDate DATETIME,
   productsModifiedFromPage int,
   productsModifiedCurrentPage int,
   itemInventoryModifiedFromDate DATETIME,
   itemInventoryModifiedToDate DATETIME,
   itemInventoryModifiedCurrentDate DATETIME,
   itemInventoryAndProductsSyncDirection int,
   itemNonInventoryModifiedFromDate DATETIME,
   itemNonInventoryModifiedToDate DATETIME,
   itemNonInventoryModifiedCurrentDate DATETIME,
   itemNonInventoryAndProductsSyncDirection int,
   itemServiceModifiedFromDate DATETIME,
   itemServiceModifiedToDate DATETIME,
   itemServiceModifiedCurrentDate DATETIME,
   itemServiceAndProductsSyncDirection int,
   itemDiscountModifiedFromDate DATETIME,
   itemDiscountModifiedToDate DATETIME,
   itemDiscountModifiedCurrentDate DATETIME,
   itemDiscountAndProductsSyncDirection int,
   itemGroupModifiedFromDate DATETIME,
   itemGroupModifiedToDate DATETIME,
   itemGroupModifiedCurrentDate DATETIME,
   itemGroupAndProductsSyncDirection int,
   itemOtherChargeModifiedFromDate DATETIME,
   itemOtherChargeModifiedToDate DATETIME,
   itemOtherChargeModifiedCurrentDate DATETIME,
   itemOtherChargeAndProductsSyncDirection int,
   itemSalesTaxModifiedFromDate DATETIME,
   itemSalesTaxModifiedToDate DATETIME,
   itemSalesTaxModifiedCurrentDate DATETIME,
   itemSalesTaxAndProductsSyncDirection int,
   contactsModifiedFromDate DATETIME,
   contactsModifiedToDate DATETIME,
   contactsModifiedCurrentDate DATETIME,
   contactsModifiedFromPage int,
   contactsModifiedCurrentPage int,
   invoiceQBModifiedFromDate DATETIME,
   invoiceQBModifiedToDate DATETIME,
   invoiceQBModifiedCurrentDate DATETIME,
   invoicesZohoModifiedFromDate DATETIME,
   invoicesZohoModifiedToDate DATETIME,
   invoicesZohoModifiedCurrentDate DATETIME,
   invoicesZohoModifiedFromPage int,
   invoicesZohoModifiedCurrentPage int,
   invoiceQBinvoicesZohoSyncDirection int,
   vendorQBModifiedFromDate DATETIME,
   vendorQBModifiedToDate DATETIME,
   vendorQBModifiedCurrentDate DATETIME,
   vendorsZohoModifiedFromDate DATETIME,
   vendorsZohoModifiedToDate DATETIME,
   vendorsZohoModifiedCurrentDate DATETIME,
   vendorsZohoModifiedFromPage int,
   vendorsZohoModifiedCurrentPage int,
   vendorQBvendorsZohoSyncDirection int,
   customerMapping varchar(50),
   PRIMARY KEY (`username`)
);

该表需要非常频繁的更新,一次只需要更新 2 或 3 列。我的问题是:我应该保留这个大表并在休眠中使用@dynammicupdate 还是将这个表划分为较小的表而不使用动态更新。我不介意一张桌子或多张桌子。我只想知道这两种方法的性能如何。

标签: javamysqlhibernate

解决方案


推荐阅读