PostgreSQL 数据库限制、数据类型及 SQL 语法参考
1. PostgreSQL 数据库限制
在使用数据库存储信息时,我们往往容易忽略存储并非无限的事实。所有数据库系统都存在一定限制,PostgreSQL 也不例外。接近这些限制时,数据库性能会下降,甚至可能无法执行更新操作。不过,近期的 PostgreSQL 版本已放宽了大部分限制。
1.1 数据库大小
PostgreSQL 对数据库总大小没有限制,有报道称存在 4TB 的数据库,这对于大多数应用来说已足够。但如果数据库包含大量表,可能会出现性能下降,因为 PostgreSQL 存储表数据时可能使用大量文件,若操作系统对单目录下的大量文件处理不佳,就会影响性能。PostgreSQL 8.0 引入的表空间有助于管理员减少这种影响。
1.2 表大小
PostgreSQL 通常以 8KB 为块存储表数据,块数量受 32 位有符号整数限制(略超 20 亿),最大表大小为 16TB。构建 PostgreSQL 时可将基本块大小增至最大 32KB,理论表大小上限可达 64TB。不过,部分操作系统有文件大小限制,PostgreSQL 会将表数据存储在多个 1GB 的文件中,大表会产生大量文件,可能导致操作系统性能下降。
1.3 表中的行数
PostgreSQL 对表中的行数没有限制。
1.4 表索引
PostgreSQL 对表上可创建的索引数量没有限制,但在有大量列的表上创建过多索引可能会导致性能下降。
1.5 字段大小
表中任何一个字段的大小限制为 1G