我有一个关于数据库设计的基本问题。我们有一个postgresql数据库,其中一个表比其他表大得多。这是一个审计跟踪,记录我们软件中的任何和所有更改。这样做不聪明吗?将其存储在另一个数据存储(redis)或其他数据库中会更好吗?或者Postgresql是否以大表不会影响其他表的读取性能的方式处理此问题。 postgres如何知道要在内存中缓存哪些数据等。
对于这样一个基本而模糊的问题,我很抱歉,我不知道怎么回答这个问题。一年之后我就不想走下去了,我们遇到了严重的数据库性能问题,因为我们的一个表是50gb,而数据库的其余部分是< 1GB。
感谢。
答案 0 :(得分:4)
我们使用表分区(使用PostgreSQL inheritance),对于一个月的数据,分区大约为150GB。表的大小并不重要,它与您的查询和用于这些查询的索引有关。
在处理性能时,应始终使用真实数据,真实查询,EXPLAIN和EXPLAIN ANALYZE。没有它,这将是一个幸运的镜头。