请记住,我是sql/数据库世界的新手。
我正在每秒插入/更新数千个对象。这些对象正在多个秒间隔主动查询。
有哪些基本的事情我应该做来优化我的(postgres)数据库性能?
请记住,我是sql/数据库世界的新手。
我正在每秒插入/更新数千个对象。这些对象正在多个秒间隔主动查询。
有哪些基本的事情我应该做来优化我的(postgres)数据库性能?
这是一个广泛的主题,因此这里有很多内容供您阅读。
当您用尽这些选项时:添加更多内存,更快的磁盘子系统等。硬件很重要,特别是在大型数据集上。
当然,还要阅读有关postgres/数据库的所有其他帖子。:)
实际上有一些简单的规则可以让您在大多数情况下获得足够的性能:
索引是第一部分。主键自动索引。我建议在所有外键上放置索引。如果有频繁查询的列,进一步将索引放在这些列上,如果有一个表上有多个列被查询,则将这些列一起放置索引。
在您的postgresql安装中设置内存设置。将以下参数设置得更高:
.
shared_buffers, work_mem, maintenance_work_mem, temp_buffers
http://www.postgresql.org/docs/8.3/interactive/runtime-config-resource.html
我所建议的最低要求是使用EXPLAIN ANALYZE命令。它可以展示子查询、连接等操作的细节,同时显示这些操作实际耗费的时间。此外,它还会提醒你有关顺序扫描(sequential scan)和其他不良情况。
这是开始的最佳方式。