因为不想改动架构,那么最简单的方法就是使用数据库分区,这样的话甚至都不需要改代码。
数据库的分区并不是生成新的数据表,而是将表的数据均衡分配到不同的硬盘、系统或不同的服务器存储介质中,实际上还是一张表。
数据库分区有以下优点:
比起单个文件系统或硬盘,分区可以存储更多的数据。
在清理数据时,可以直接删除废弃数据所在的分区。同样,有新数据时,可以增加更多的分区来存储新数据。
可以大幅度地优化特定的查询,让这些查询语句只去扫描特定分区的数据。
在分区表中,为了达到只扫描特定分区的效果,必须在Where语句里面加上一个包含分区字段的条件,但是分析业务中常用的SQL语句,发现并未包含相同的字段,因此无法找到理想的分区字段。
MySQL的分区有个限制,即分区字段必须是唯一索引(主键也是唯一索引)的一部分。工单表是用ticketID当主键,也就是说接下来无论使用什么当分区字段,都必须把它加到主键当中,形成复合主键。
放弃该方案。