为什么数据库限制行/值的大小?

问题描述 投票:1回答:1

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

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

mysql database amazon-dynamodb b-tree
1个回答
0
投票

基于游标的结果集遍历是我建议的事情,DB客户端不会在任何时间获取一半的行,因此,如果行大小没有限制,则客户端lib必须准备好面对任意冗长的二进制文件流,显然,要为C / S通信设计高效且正确的有线协议变得更加困难。

但是我想这不是全部,很多其他问题也可以算作。

© www.soinside.com 2019 - 2024. All rights reserved.