我正在研究与我用Java编写的应用程序的性能相关的一系列问题,该应用程序每天有大约100,000 次点击,并且每次访问平均在 2 个主要数据库表(均分)上进行 5 到 10 次读取/写入,其基数是对于1 到 300 万条记录(我通过休眠访问数据库)。
我的两个主表存储用户信息(大约 60 列类型为 varchar、integer 和 timestamptz)和另一个链接到要显示的数据(这里大约 30 列主要是 varchar、integer、timestamptz)。
我遇到的主要问题可能是我的站点性能下降(让我们谈谈超过 5 秒的时间加载,这显然不仅仅取决于数据库性能),是使用FillFactor,目前默认值为 100(它总是在数据不变时使用..)。
显然填充因子在索引上是相同的(每 2 个 btree 类型的表有 10 个)
目前在我制作的主要桌子上
- 40% 选择操作
- 30% 更新操作
- 20% 操作插入
- 10% 删除操作。
我的数据库还由 40 个其他次要的表组成(只有其他 3 个具有相同的用户基数)。
我的问题是:
- 您如何找到要设置的填充因子的正确值?
- 哪些可以作为检查任务清单以提高 此类数据库的性能?
数据库位于服务器专用(16GB Ram,8 核)上,存储在 SSD 磁盘上(数据全天备份并移动到另一个存储上)