gpt4 book ai didi

sql-server - 向表中添加 BLOB 字段的性能开销

转载 作者:行者123 更新时间:2023-12-05 01:33:06 24 4
gpt4 key购买 nike

我试图在两种可能的实现之间做出决定,并渴望选择最好的一种 :)

我需要向当前只有 3 个简单字段的表中添加一个可选的 BLOB 字段。预计新字段将在不到 10% 的情况下使用,甚至可能不到 5%,因此对于大多数行而言,它将为空 - 事实上,我们的大多数客户可能永远不会在其中包含任何 BLOB 数据。

一位同事的第一个倾向是添加一个新表来仅保存 BLOB,第一个表中有一个(可为空的)外键。他预测这将在查询第一个表时带来性能优势。

我的想法是将 BLOB 直接存储在原始表中更合乎逻辑且更容易。我们的查询都没有SELECT *从那个表中,所以我的直觉是直接存储它不会有显着的性能开销。

我将对这两种选择进行基准测试,但我希望一些 SQL 专家从经验中获得任何建议。

使用 MSSQL 和 Oracle。

最佳答案

对于 MSSQL,blob 将存储在数据库中的单独页面上,因此如果列为空,它们不应影响性能。

如果您使用 IMAGE 数据类型,则数据始终存储在行外。
如果您使用 varbinary(max) 数据类型,那么如果数据大于 8kb,则它存储在行外,否则它可能存储在行中,具体取决于表选项。

如果您只有几行带有 blob,则性能不应该受到影响。

关于sql-server - 向表中添加 BLOB 字段的性能开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/772434/

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