关于数据库分表的作用

之前项目遇到一个慢sql的问题,是数据量大导致的当时用的postgres,除了索引外还增加了一个分表的trigger
大概作用是将插入母表maintable的数据根据插入记录的字段(date)分别插入子表subtable_date中
这样查的时候查询子表subtable_date
但是子表并不是真正存在的,而且查询就算查的子表其实最终还是目标中查询的,这样跟加了date的条件查询有什么区别
这样做的意义是什么,会不会提升性能

你这都插入数据进去了,咋还说子表不是真正存在?
单独创建一个这样的表,意义在于如果有某些场景只需要子表里的这些数据,比如前端检索条件范围控制,那么查这个子表肯定比查母表要快。
另外,你没有给出完整的子表和母表的结构,查询sql也没列,执行计划也没贴,也没说清楚触发器的完整逻辑,也没说清楚与这两个表相关的所有场景,因此暂时无法对这个做法进行综合性评价。

数据量大的表建议分区,一个好的分区表会提升非常棒的性能,你可以试试,如果不是分区表的话,trigger会导致你插入数据非常慢,
如果你觉得这个子表不存在,教你个最简单的办法证明他存不存在:
select * from 子表 ;
如果你能查出结果,那这个子表就是真是存在的。
当然还需要看你的postgres 数据库的版本,毕竟版本10以上才建议创建分区表。