一、背景公司使用了一个第三方的pg数据库最开始没有进行规划后面发现数据量很大导致查询很慢需要进一步优化查询慢的场景将原普通表改成分区表来提升查询效率保留7天的分区数据二、准备DDL原表名为mid_log_kyy先创建一个新表CREATETABLEdwd_ad.mid_log_kyy_new(app_sourceTEXT,osverTEXT,azemTEXT,odTEXT,wzTEXT,pigTEXT,mlTEXT,networkTEXT,carrierTEXT,tsTIMESTAMPWITHTIMEZONE,ttsTIMESTAMPWITHTIMEZONE,aidTEXT,app_idTEXT,)USINGhybridPARTITIONBYRANGE(tts)三、创建分区示例创建20260629的分区其他时间按照以下修改创建即可CREATETABLEdwd_ad.mid_ad_log_kyy_part_20260629PARTITIONOFdwd_ad.mid_ad_log_kyyFORVALUESFROM(2026-06-29 00:00:00)TO(2026-06-30 00:00:00);四、将原表数据导入新分区表insertintomid_log_kyy_newselect*frommid_log_kyywheretts2026-06-29andtts2026-06-30;五、验证新表数据SELECTCOUNT(*)frommid_log_kyy_newWHEREtts2026-06-29 00:00:00andtts2026-06-30 00:00:00六、将表重命名如果有数据写入建议暂停写入再进行重命名altertablemid_log_kyyrenametomid_log_kyy_old;altertablemid_log_kyy_newrenametomid_log_kyy;七、验证数据SELECTCOUNT(*)frommid_log_kyyWHEREtts2026-06-29 00:00:00andtts2026-06-30 00:00:00