我有一个业务表 主要是下述字段(医院的业务) 开单科室编码A 执行科室编码B 收费项目C 收费类别D 金额E 开单比例M 执行比例N 每月的数据大约有50~100万,主要的操作是根据 字段 A B C D 的任意组合来更新M N 例如:开单科室编码= '334322' 并且 收费类别以'21'开头,设置开单比例为0.112 目前效率瓶颈主要是这个多次更新,每次更新50万条记录,由于业务表每月累计,所以这个表的数据大约几千万条,越来越多,越来越慢? 如何办?
--#1.分区表,是否合适楼主的业务
--#2.开单比例M,执行比例N,两列是否可用计算列
--#3.每月更新50W,datetime字段需要加上索引,且更新时加上时间条件限制。或者,每次更新前,想办法得到主键的更新范围,然后在主键范围内更新,会最快:update tb set field=1 where id between 200000 and 700000
--#4.及时归档历史数据到历史表