MySQL 提供 PROCEDURE ANALYSE
.给定一个查询
SELECT `field` FROM `table` PROCEDURE ANALYSE();
结果提供了建议的字段类型
Optimal_fieldtype: TINYINT(2) UNSIGNED NOT NULL
PostgreSQL 是否提供类似的功能?我看过 pg_statistic / pg_stats 强>。似乎我可以使用这些信息来推断哪种数据类型可能是合适的,但如果 Postgres 可以自己推荐一种实际的数据类型,那将会很方便。
最佳答案
据我所知,在 Postgres 中没有与 MySQL 的 PROCEDURE ANALYSE
等效的东西。 (我想我会知道的。)
对于给定的示例,显然是关于整数类型的列,我会:
SELECT min(field), max(field) FROM tbl;
并检查可能的范围 numeric data types in the manual .
或者对于不同值的分布:
SELECT field, count(*) AS ct FROM tbl GROUP BY 1 ORDER BY 2 DESC;
实际上,任何具有最少经验的 DBA 都应该了解基本数据类型的基本特征。每个用例的最佳类型不仅取决于值的当前范围和分布。 MySQL 的 PROCEDURE ANALYSE()
基本上可以帮助新手 - 他们很容易误解结果。
关于postgresql - PostgreSQL 可以推荐最佳字段类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27304657/