Some databases (like MySQL) use B+trees as a way to physically organize records. The primary index (also called clustering index) stores the keys as internal nodes and the records in the leaf level.
Since all pages have fixed size, I suppose that internal nodes and leaf nodes have different degrees: The degree of internal nodes is derived from the primary key size, and the degree of the leaf nodes is derived from the record size.
What if the record size is variable? How the degree of the leaf level is set?
Additionally, I always study b+trees under the assumption that keys have the same size. It enables a straightforward method for splitting and dividing the nodes. What about the leaf level? How to balance the nodes when the records to move have variable sizes?