Почему базы данных ограничивают размер строки / значения? - PullRequest
1 голос
/ 20 апреля 2020

Я читал о базах данных, и похоже, что большинство баз данных накладывают ограничение на размер значения (хранилище значений ключей / на основе документов *) или размер строки (реляционная база данных *). Хотя я понимаю ограничения на размер ключа / первичного ключа, это помогает увеличить коэффициент ветвления BTree, так что каждый узел BTree может быть выбран за одно чтение блока в файловой системе. Для значений я предполагаю, что ключи хранят только указатель на файл, содержащий значение, которое позволяет значениям быть произвольно большими. Является ли указатель верным только для данных типа text / blob, а остальные значения хранятся в узле Btree? Но хранение значений с помощью самого узла Btree помогает оптимизировать только один ввод-вывод (до go и начать чтение файла, на который указывает указатель), ограничение размера, по-видимому, очень много для компромисса.

Ссылки :
Предел mysql: https://dev.mysql.com/doc/mysql-reslimits-excerpt/5.7/en/column-count-limit.html
Предел на DynamodB: Максимальный размер элемента DynamoDB

1 Ответ

0 голосов
/ 20 апреля 2020

Обращение к результирующему набору на основе курсора - это то, что я предлагаю, клиенты БД не будут извлекать половину строки в любое время, поэтому, если нет ограничений на размер строки, библиотека на стороне клиента должна быть готова к произвольной длине двоичные потоки, которые, очевидно, значительно усложняют разработку эффективного и в то же время корректного проводного протокола для связи C / S.

Но я не думаю, что в этом вся история, многие другие проблемы также могут учитываться.

...