【问题标题】:Why do databases limit row/value size?为什么数据库限制行/值大小?
【发布时间】:2020-08-02 17:03:09
【问题描述】:

我一直在阅读有关数据库的信息,并且看起来大多数数据库都对值的大小(键值存储/基于文档的*)或行的大小(关系数据库*)施加了限制。尽管我了解键/主键大小的限制,但它有助于增加 BTree 的分支因子,以便可以在文件系统上的块的一次读取中获取每个 BTree 节点。对于值,我假设键只存储一个指向包含允许值任意大的值的文件的指针。指针是否仅适用于文本/ blob 类型的数据,其余值存储在 Btree 节点中?但是用 Btree 节点本身存储值有助于优化一个 IO(去开始读取指针指向的文件),大小限制似乎需要权衡取舍。

参考:
mysql限制:https://dev.mysql.com/doc/mysql-reslimits-excerpt/5.7/en/column-count-limit.html
dynamodb 限制:Maximum size of DynamoDB item

【问题讨论】:

    标签: mysql database amazon-dynamodb b-tree


    【解决方案1】:

    我建议基于游标的结果集遍历,DB 客户端在任何时候都不会获取半行,所以如果对行大小没有限制,客户端库必须准备好面对任意冗长二进制流,这显然使得为 C/S 通信设计高效且仍然正确的有线协议变得更加困难。

    但我不认为这是整个故事,许多其他问题也可以算在内。

    【讨论】:

      猜你喜欢
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 2017-01-13
      • 2014-11-18
      • 1970-01-01
      相关资源
      最近更新 更多