我正在编写一个由 MySQL 数据库备份的 Web 应用程序,其中一个表有可能变得非常大(千兆字节的顺序),其中很大一部分表操作正在写入。其中一个表列需要存储一个可能非常大的字符串序列。到目前为止,在我的测试中,它的大小已达到 289 字节,但为了安全起见,我想设计的最大大小为 1 kb。目前我将该列作为 MySQL MediumBlob 字段存储在 InnoDB 表中。
同时,我一直在用谷歌搜索确定 BLOB 与其他存储形式的相对优缺点。那里的信息太多了,也许太多了。我收集到的是,InnoDB 将 BLOB 的前几个字节(如果记忆对我有用,则为 789)存储在表行本身和其他地方。我也有这样的想法,如果一行每列有多个 BLOB(我的表没有),那么“其他地方”是每个 BLOB 的不同位置。除此之外,我的印象是访问 BLOB 数据比访问行数据慢得多(这听起来很合理)。
我的问题就是这样 - 鉴于我的 BLOB 大小和表的巨大潜在大小,我应该为一个 blob 烦恼吗?另外,如果我使用某种形式的行内存储,这不会对表能够容纳的最大行数产生不利影响吗?
MySQL 很简洁,可以让我摆脱开发环境中的几乎所有事情。但是……那不是真实的世界。