在搜索SO时,我发现了两个相互矛盾的答案(甚至是一条评论说明了这一点),但没有明确的答案:
问题是:如果在表外存储TEXT/BLOB字段,是否有任何性能优势?
我们猜测:
这篇文章指出,将TEXT/BLOB放入一个单独的表中,只有在你已经以错误的方式选择时才会有所帮助(即使没有必要也总是选择TEXT/BLOB) - 基本上说明了TEXT/BLOB中的TEXT/BLOB相同的表基本上是更好的解决方案(更少的复杂性,没有性能损失等),因为TEXT/BLOB无论如何都是单独存储的
将TEXT列移动到另一个表中的唯一时间将提供任何好处,如果通常从表中选择所有列的趋势.这只是引入第二种不良做法来弥补第一种不良做法.不言而喻,这两个错误与三个左翼不一样.
但是,这篇文章指出:
当表具有TEXT或BLOB列时,表无法存储在内存中
这是否意味着在表格中有一个TEXT/BLOB已经足够,以达到性能?
我的问题基本上是:答案是正确的?
如果你SELECT正确地将TEXT/BLOB存储到一个单独的表中,这真的很重要吗?
或者甚至在表格中有一个TEXT/BLOB,会产生潜在的性能影响?
我一直在研究数据库,我必须处理一个TEXT字段.
现在,我相信我已经看到一些地方提到最好将TEXT列与表的其余部分隔离开来(将它放在自己的表中).
但是,现在我无法在任何地方找到这个参考,因为它已经有一段时间了,我开始认为我可能误解了这些信息.
一些研究揭示了这一点,暗示了这一点
将文本/ blob与元数据分开,如果不需要,请不要将text/blob放在结果中.
但是,我不熟悉这里使用的"元数据"的定义.
所以我想知道将TEXT列放在自己的表中是否有任何相关的优点.与其他领域合作的潜在问题是什么?将它保存在分离表中的潜在问题?
应该相当频繁地搜索(选择)该表(没有TEXT字段)."过早优化被认为是邪恶的"在这里很重要吗?(如果在TEXT列中确实存在惩罚,那么它的相关程度如何,考虑到以后需要时更改它很容易).
此外,这个话题有什么好的联系吗?(也许stackoverflow问题和答案?我试图搜索这个主题,但我只发现了TEXT与VARCHAR的讨论)