gpt4 book ai didi

mysql - 在 MySQL 数据库中使用的 VARCHAR(MAX) vs TEXT vs .txt 文件

转载 作者:搜寻专家 更新时间:2023-10-30 22:28:44 24 4
gpt4 key购买 nike

我试着用谷歌搜索这个,但我发现的任何结果都与从 txt 文件导入数据以填充数据库有关,而不是存储数据。

对我来说,文件的内容应该存储在数据库中似乎很奇怪。我们正在努力构建一个电子商务网站,每个项目都有一个描述。我假设标准是将描述存储在 txt 文件中,将 URL 存储在数据库中,而不是将大量内容存储在数据库中以保持低文件大小和高速度。当您需要将图像存储在数据库中时,您可以使用 URL 引用它而不是存储所有像素数据——为什么文本会有所不同?这就是我的想法,但每个人似乎都在争论 VARCHAR 与 TEXT,那么存储最多 1000 个字符的文本数据的最佳方式到底是什么?谢谢!

最佳答案

将长文本数据或图像数据存储在数据库中还是外部文件中没有正确或错误的答案。双方各有利弊 — 尽管许多开发人员明确声称您应该将图像存储在数据库之外。

考虑一下您可能希望文本数据:

  • 允许回滚更改。
  • 支持事务隔离。
  • 强制执行对数据的 SQL 访问权限。
  • 创建全文索引时可在 SQL 中搜索。
  • 支持 NOT NULL 约束,因此您的文本需要包含某些内容
  • 在您创建数据库备份时自动包含(并且文本的版本是正确的版本,确保与其他数据的一致性)。
  • 自动将文本传输到副本数据库实例。

对于上述所有内容,您需要将文本存储在数据库中。如果文本在数据库之外,这些功能将不起作用。

关于 VARCHAR 与 TEXT,我可以回答 MySQL(尽管您提到了 VARCHAR(MAX),所以您可能指的是 Microsoft SQL Server)。

  • 在 MySQL 中,VARCHAR 和 TEXT 的最大字节数均为 64KB。如果你使用多字节字符集,最大字符数较低。

  • VARCHAR 和 TEXT 都有字符集和排序规则。

  • VARCHAR 允许使用 DEFAULT,但 TEXT 不允许。

  • 在 InnoDB 存储引擎内部,VARCHAR 和 TEXT 的存储方式相同(以及 VARBINARY 和 BLOB 以及它们的所有同类)。参见 https://www.percona.com/blog/2010/02/09/blob-storage-in-innodb/

关于mysql - 在 MySQL 数据库中使用的 VARCHAR(MAX) vs TEXT vs .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47167851/

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