我创建的网站有“事件”。事件有标题、日期和相关人员的用户 ID。事件可以是关注某人、创建新帖子等。我正在考虑将所有事件存储在一个表中,但我可以看到它很快变得非常大。
我做对了吗?例如,当我需要在表中搜索与某个用户有关的事件时,这会对系统造成多大的影响?我可以以某种方式优化它吗?
我创建的网站有“事件”。事件有标题、日期和相关人员的用户 ID。事件可以是关注某人、创建新帖子等。我正在考虑将所有事件存储在一个表中,但我可以看到它很快变得非常大。
我做对了吗?例如,当我需要在表中搜索与某个用户有关的事件时,这会对系统造成多大的影响?我可以以某种方式优化它吗?
您将在 WHERE 子句中最常使用的列上添加索引,例如,如果您经常选择与某个用户相关的所有事件,则应在 user_id 列上创建索引。
http://www.postgresql.org/docs/9.1/static/sql-createindex.html
如果表真的很大,您可以使用分区: http ://www.postgresql.org/docs/9.1/static/ddl-partitioning.html 但您必须选择一个好的分区键 - 好的候选者是: