回答
Q1:the docs没有明确的限制。在实践中,一些操作是O(n)表的数量;预计计划时间会增加,以及诸如自动清理等问题,因为您会遇到数据库中数千或数万个表。第二季度:这取决于查询。一般来说,巨大的工会是一个坏主意。表继承会更好一些,但如果您使用constraint_exclusion
将导致计划时间大大增加。
这两个问题都表明您的设计存在潜在的问题。你不应该需要大量的表和巨型联合。
通过在其他答案的评论,你应该真的只是创建几个表。您似乎想要为每个电话号码创建一个表,这是无意义的,并在其上创建每个数字的视图。不要这样做,它会使数据难以辨认,并会使其更难以处理。索引,其中的子句和连接将允许您在逻辑上将其组织成几个表格时更有效地使用数据。我建议学习基本的关系建模。
如果您稍后遇到可扩展性问题,您可以查看partitioning,但您不需要上千个表。
从实际意义上说,两者都是没有限制的。
数据库可容纳的表的数量受磁盘系统上的空间限制。但是,拥有超过几千个表的数据库可能更多地表达了对应用程序域的错误分析。工会也是如此:如果你不得不联合多个表,你可能应该看看你的表结构。
这种情况可能发生的一个实际场景是Postgis:有许多具有类似属性的表可以在单个视图中加入(这是Postgis恕我直言的设计中的一个缺陷),但是通常会在应用程序方面(如GIS)。
你能解释一下你的场景,你需要一个需要在一次扫描中查询的大量表格吗?
情景是这样的:我想创建一个数据库,例如称为“呼叫细节记录器”。在这里,我想存储每个被叫号码和塔号码的数字表,这些数字应该以百万为单位。而且我还希望为每个被叫号码分别创建视图以进一步调整问题。 – Meem
因此,如果我理解正确,您想要存储移动电话通话,记录哪个号码称为另一个号码,以及通过哪些塔楼注册这些通话?如果是这样,那么你需要一个单一的塔表,一个表的所有电话号码与呼叫者的名字和其他细节,你有。两个表都有一个主键,然后你创建第三个表,记录主叫方的pkey,接收方的pkey,塔的pkey,通话时间,持续时间等。创建视图非常简单。你认为你需要很多桌子在哪里? – Patrick
@ user3382347是的,这听起来像你需要四五张表,而不是数千。不要为每个数字创建视图,使用SQL函数或简单的where子句。您可能需要按比例[分割您的表格](http://www.postgresql.org/docs/current/static/ddl-partitioning.html),但您不需要(或不需要)成千上万的表格。 –
- 1. 可以放入PostgreSQL INSERT语句中的VALUES的最大数量是多少?
- 2. 我可以在SQL Server行中存储的最大数据量是多少?
- 3. Heroku免费计划(MongoDB/PostgreSQL)上的单个表数据库可以拥有的最大行数是多少?
- 4. 可以存储在MongoDB集合中的文档的最大数量是多少?
- 5. RMS可以存储多少数据量?
- 6. sql server集群上存储的最大数据量是多少?
- 7. Android将数据存储到缓存需要多少时间?或者,存储的最大数据量是多少?
- 8. 缓存存储中每个密钥可以存储的最大数据/ URL的大小是多少?
- 9. 我们可以将数据以gzip格式存储在postgresql中
- 10. 我可以在Subversion中修改的最大数量是多少?
- 11. 可以通过GPRS传输的最大数据量是多少
- 12. PostgreSQL在内存数据库
- 13. 我们可以在salesforce中的文件中存储多少最大数据
- 14. PostgreSQL数据库可以拥有的表的数量是否有限制?
- 15. 数据的最大数量可以存储在道场dstore
- 16. Postgresql创建存储数据库链接
- 17. 在C++中可以存储在数组中的元素的最大数量是多少?
- 18. 尝试设置Rails以在Postgresql数据库中存储会话
- 19. 我可以在一个EntityCollection中存储的最大记录数是多少?
- 20. 单个SQL Server表可以存储的最大行数是多少?
- 21. 对象可以在iPhone上保存的数据的最大大小是多少?
- 22. Heroku的PostgreSQL的最大数量
- 23. 将php对象存储到postgresql数据库的最佳格式
- 24. Postgresql - caculate数据库大小
- 25. 可存储在RRDtool中的最大和最小值是多少?
- 26. 在python中增量postgresql数据转储
- 27. 用于在postgresql数据库中存储erlang pids的数据类型是什么?
- 28. 无法在postgresql中存储数据
- 29. 通过PostgreSQL数据库聚合大量(行数)的数据集
- 30. 的PostgreSQL数据库
非常感谢。 – Meem
我见过的最大的数据库是JD Edwards(我认为)ERP系统。它在Oracle上运行了大约20,000个表。但这绝对是一个异常。 –
@ MikeSherrill'CatRecall'由于使用了'search_path'来进行穷人分区,因此每个客户都要克隆模式,所以看到更高的表计数并不是很少见。 –