请记住,我是sql/databases世界的新手.
我每秒插入/更新数千个对象.这些对象以多个第二间隔被主动查询.
我应该做些什么基本的事情来调整我的(postgres)数据库?
这是一个广泛的主题,所以这里有很多东西供你阅读.
EXPLAIN和EXPLAIN ANALYZE对于了解db-engine中正在发生的事情非常有用
确保将相关列编入索引
确保没有索引不相关的列(如果必须更新太多索引,插入/更新 - 性能可能会耗尽)
确保你的postgres.conf已正确调整
了解work_mem是什么,以及它如何影响您的查询(主要用于较大的查询)
确保您的数据库已正确规范化
VACUUM用于清除旧数据
ANALYZE用于更新统计信息(统计数据的统计目标)
持久连接(您可以使用像pgpool或pgbouncer这样的连接管理器)
理解如何构造查询(连接,子选择,游标)
缓存数据(即memcached)是一种选择
当你已经用尽这些选项时:添加更多内存,更快的磁盘子系统等.硬件很重要,特别是在较大的数据集上.
当然,阅读postgres/databases上的所有其他线程.:)
首先,阅读官方手册的性能提示.
对所有查询运行EXPLAIN并了解其输出将告诉您查询是否尽可能快,以及是否应添加索引.
完成后,我建议您阅读本手册的" 服务器配置"部分.有许多选项可以进行微调,以进一步提高性能.请务必了解您正在设置的选项,因为如果设置不正确,它们可能会轻易阻碍性能.
请记住,每次更改查询或选项时,请进行测试和基准测试,以便了解每项更改的效果.