Ticket #1 (closed enhancement: fixed)

Opened 15 years ago

Last modified 15 years ago

数据库优化

Reported by: chenchongqi Owned by: chenyinle
Priority: major Milestone: 2011年第一阶段提交
Component: 商家后台 Version: 5.0
Keywords: 数据库优化,表拆分 Cc:
Due Date:

Description (last modified by chenchongqi) (diff)

对商品表访问频繁的业务操作,如批量更新、报价、上下架,针对性在数据库中把表分拆,提高性能,减少锁冲突。

此优化与即将开始的批量报价功能关系密切,如果没有数据库方面的优化,预计数据库服务器负担进一步加重,锁冲突将更加密集。

如果时间允许,把商家和商品的状态也抽出来,例如允许在首页出现,允许在产品库出现等等,各个使用的地方就直接根据这些状态来判断,各种规则的影响也只是影响这些状态,这样避免某种规则变化的时候,全部的sql都要改,这部分有时间才优化。

Attachments

itmsplit.sql Download (3.2 KB) - added by chenchongqi 15 years ago.
refresh_cyp_table_11.v3.sh Download (8.5 KB) - added by chenchongqi 15 years ago.
cyp_update_product_11.sh Download (1.7 KB) - added by chenchongqi 15 years ago.
enterprise_20110428.txt Download (1.3 KB) - added by chenchongqi 15 years ago.
接口.txt Download (2.1 KB) - added by chenchongqi 15 years ago.
IT商城商品发布及数据库优化上线计划(2).xls Download (13.5 KB) - added by chenchongqi 15 years ago.

Change History

comment:1 Changed 15 years ago by chenchongqi

  • Owner set to chenyinle
  • Status changed from new to assigned

comment:2 Changed 15 years ago by chenchongqi

  • Owner changed from chenyinle to chenchongqi

comment:3 Changed 15 years ago by chenchongqi

  • Owner changed from chenchongqi to chenyinle

comment:4 Changed 15 years ago by chenchongqi

  • contact null deleted
  • require_time changed from null to 2011-4-4

comment:5 Changed 15 years ago by chenchongqi

  • Description modified (diff)

comment:6 Changed 15 years ago by chenchongqi

第一步,清理删除状态的历史数据
第二步,把批量提交的事务转为循环内的单个事务,同时设置为悲观锁

comment:7 Changed 15 years ago by chenchongqi

  • spent_time null deleted

经讨论,JPA不支持悲观锁,另外经实验乐观锁更可能是因为JPA缓存同步导致,即JPA实例和数据库的version不一致,因此细粒度的事务对乐观锁错误改善不大,乐观锁的问题留待缓存机制改进时处理。

这一步要优化的点是:
针对无脑批量提交的数据,应用在处理的时候先判断是否有数据变更再提交。
商品表分为基本信息表和更新密集的业务表。

Changed 15 years ago by chenchongqi

Changed 15 years ago by chenchongqi

Changed 15 years ago by chenchongqi

Changed 15 years ago by chenchongqi

Changed 15 years ago by chenchongqi

Changed 15 years ago by chenchongqi

comment:9 Changed 15 years ago by chenchongqi

  • Status changed from assigned to closed
  • Resolution set to fixed
  • require_time changed from 2011-4-4 to 2011-4-28

这个拆表没有专门下需求单,寅乐把开发时间补一下。

另外补充一下,拆表后因为一些使用的地方还没有来得及完全拆开,造成某些地方会变成两个表联合查询操作,后续做了一些改进。

Note: See TracTickets for help on using tickets.