gpt4 book ai didi

MySQL存储长字符串的最佳方式

转载 作者:IT老高 更新时间:2023-10-29 00:00:46 26 4
gpt4 key购买 nike

我正在向 mySQL 专家寻求有关存储长字符串数据的最佳方法的一些建议。

我有一个通用表,用于存储任何类型的数据,我的意思是它应该能够保存字母数字和数字数据。目前的表结构很简单,一个ID,实际数据存储在一个列中,如下:

id INT(11)
data VARCHAR(128)

我现在需要存储大量数据(最多 500 个字符),我想知道最好的方法是简单地增加 varchar 列的大小,还是我应该添加一个新列(TEXT 类型列?),因为我需要存储更长的字符串。

如果有任何专家有任何建议,我会洗耳恭听!我的首选方法是简单地增加 varchar 列,但那是因为我很懒。我运行的 mySQL 版本是 5.0.77。

我应该提一下,新的 500 个字符要求仅适用于奇数记录;表中的大多数记录不会超过 50 个字符。我认为我可以通过将列设为 128 来面向 future 。显示我知道多少!

最佳答案

一般来说,这不是一个有“正确”答案的问题。 MySQL 中没有“无限长度”的文本存储类型。您可以使用 LONGTEXT,但它仍然有一个(高得离谱的)上限。然而,如果您这样做了,您就会因为不得不为 50 个字符的文本处理一列荒谬的一团糟而让 DBMS 大吃一惊。更不用说您几乎无法对其进行任何操作。

因此,大多数 futureproofness(TM) 可能由 LONGTEXT 提供。但这也是解决问题的非常糟糕的方法。老实说,我会重新审视申请要求。存储没有“域”(如在其应用程序中明确定义)和任意长度的字符串不是 RDBMS 的优势之一。

如果我想在“应用程序设计”层面上解决这个问题,我会为此使用 NoSQL 键值存储(我和他们一样反对 NoSQL 炒作,所以你知道这很严重),尽管我认识到对于这样一个微小的变化来说,这是一个相当昂贵的变化。但是,如果这表明您的 DBMS 最终将保留什么,那么现在切换可能更谨慎,以避免将来出现数百次同样的问题。数据域在 RDBMS 中非常重要,而在非关系解决方案中它被明确地边缘化,这似乎是您要在这里解决的问题。

坚持使用 MySQL?只需将其增加到 VARCHAR(1000)。如果您对数据没有任何要求,那么您所做的一切都无关紧要。

关于MySQL存储长字符串的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15406299/

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