我正在尝试在两种可能的实现之间做出决定,并渴望选择最好的一种:)
我需要将一个可选的 BLOB 字段添加到当前只有 3 个简单字段的表中。据预测,新字段将在不到 10%,甚至不到 5% 的情况下使用,因此对于大多数行来说它将为空 - 事实上,我们的大多数客户可能永远不会有任何 BLOB 数据。
一位同事的第一个想法是添加一个新表来仅保存 BLOB,并在第一个表中使用(可为空的)外键。他预测这将在查询第一个表时带来性能优势。
我的想法是,将 BLOB 直接存储在原始表中更合乎逻辑且更容易。我们的查询都不是SELECT *
从该表执行的,所以我的直觉是直接存储它不会有显着的性能开销。
我将对这两种选择进行基准测试,但我希望一些 SQL 专家能从经验中得到任何建议。
使用 MSSQL 和 Oracle。