建表时需要考虑表的容量,该表常用SQL以及字段类型选择,请结合银行业务系统改造案例,介绍下如何进行表容量规划,该表常用SQL的提取分析,以及字段类型选择的注意点(主要是字段长度较长的情况)等。
1.表容量的规划
这一问题本质是数据对象的生命周期管理,针对数据对象在生命周期内的创建、增、删、改及归档销毁等做到前期规划。根据数据访问特征,对表内数据量的变化做到预测评估,尽量在早期阶段对表做好分片、分区、归档策略等规划。
2.常用SQL提取分析
对数据对象的访问,SQL是主要的方式。需要在定期分析SQL,提升访问效率。对表的访问玩玩是比较多元的,需要区分业务与非业务、常规与非常规、定期与随机、高频与低频等SQL访问特征。优先处理业务、常规、定期、高频的SQL。提取方法是有很多,很多平台也都提供了相应工具完成提取和分析的工作。
3.字段类型选择
关于字段类型的选择上,可本着如下原则:
- 尽量使用简单字段类型,针对如LOB、JSON等类型减少使用
- 选择合适的数据类型(如日期就选择日期类型,而非数字或字符)和适当的精度
- 对于超长的数据,原则上不建议在数据库内存储,可通过外置方式保存。
字段类型选择通常都用varchar,字段长度固定的情况才使用char, 日期就用日期 ,文档图片类型用lob;你的问题不太明确,不清楚你在哪些字段抉择上遇到问题。
表容量问题和业务情况息息相关,通常只计算流水、交易记录等量大的表,三年未能达到千万级的表通常不考虑。 而这些量大的数据通常有生命周期,保留三年或者五年,需要根据业务去估算周期内的行数,在乘以1.2~1.8进行预留,行数和所占空间的比例需要测试才能知道结果,最终能估算出所需的空间。
在银行业务系统改造案例中,表容量规划是非常重要的一环。以下是一些常见的方法和注意事项: