gpt4 book ai didi

performance - 在 postgresql 的列上设置 "NOT NULL"会提高性能吗?

转载 作者:行者123 更新时间:2023-11-29 11:15:12 34 4
gpt4 key购买 nike

我知道这在 MySQL 中是个好主意。如果我没记错的话,在 MySQL 中它允许索引更有效地工作。

最佳答案

设置 NOT NULL 本身对性能没有影响。检查几个周期 - 无关紧要。

但是您可以通过实际使用 NULL 而不是虚拟值来提高性能。根据数据类型,您可以节省大量磁盘空间和 RAM,从而加快……一切。

空位图只有在中有空值时才会被分配。对于行中的每个 列(NULL 或非 NULL),它是一位。对于最多 8 列的表,空位图实际上是完全免费的,使用元组标题和行数据之间的备用字节。之后,以 MAXALIGN 的倍数分配空间(通常为 8 个字节,覆盖 64 列)。填充丢失了差异。因此,您为每行中的第一个 NULL 值 支付全价(低价!)。额外的 NULL 值只能节省空间。

任何非空值的最小存储要求是 1 个字节(boolean“char”、...)或通常很多 更多,加上(可能)用于对齐的填充。继续阅读 data types或检查系统表 pg_type 中的详细信息。

关于 null 存储的更多信息:

关于performance - 在 postgresql 的列上设置 "NOT NULL"会提高性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1222314/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com