lui*_*bal 6 mysql sql optimization text
我一直在研究数据库,我必须处理一个TEXT字段.
现在,我相信我已经看到一些地方提到最好将TEXT列与表的其余部分隔离开来(将它放在自己的表中).
但是,现在我无法在任何地方找到这个参考,因为它已经有一段时间了,我开始认为我可能误解了这些信息.
一些研究揭示了这一点,暗示了这一点
将文本/ blob与元数据分开,如果不需要,请不要将text/blob放在结果中.
但是,我不熟悉这里使用的"元数据"的定义.
所以我想知道将TEXT列放在自己的表中是否有任何相关的优点.与其他领域合作的潜在问题是什么?将它保存在分离表中的潜在问题?
应该相当频繁地搜索(选择)该表(没有TEXT字段)."过早优化被认为是邪恶的"在这里很重要吗?(如果在TEXT列中确实存在惩罚,那么它的相关程度如何,考虑到以后需要时更改它很容易).
此外,这个话题有什么好的联系吗?(也许stackoverflow问题和答案?我试图搜索这个主题,但我只发现了TEXT与VARCHAR的讨论)
是的,似乎你误解了句子的含义.它的含义是,如果你真的需要该字段的内容,你应该只做一个包括TEXT字段的SELECT.这是因为TEXT/BLOB列可能包含大量需要传递给您的应用程序的数据 - 这需要时间和资源.
祝愿,费边
这可能是过早的优化.性能调优MySQL非常棘手,只能通过应用程序的真实性能数据来完成.我已经看到很多尝试再次猜测是什么让MySQL在没有实际数据的情况下变慢,结果每次都是一个混乱的架构和复杂的代码,这实际上会使性能调整更加困难.
从标准化的简单模式开始,然后当事情证明太慢时,仅在需要的地方添加复杂性.
正如其他人所指出的那样,你提到的引用更适用于查询结果而不是模式定义,无论如何,无论如何,你选择的存储引擎都会影响建议的有效性.
如果你确实发现自己需要将TEXT/BLOB列移动到一个单独的表中的复杂性,那么可能值得考虑将它们从数据库中移出的选项.文件存储通常优于数据库存储,特别是如果您不对TEXT/BLOB列的内容进行任何关系查询.
基本上,在获取互联网上的任何MySQL调优建议之前获取一些数据,包括这个!