The information found in the official MySQL documentation at https://dev.mysql.com/doc/refman/8.0/en/data-dictionary-file-removal.html does not match the information shown in the manual at https://dev.mysql.com/doc/refman/8.0/en/column-count-limit.html for version 8.
First link says that the 64kb limit was dropped, the 2nd link says it exists.
It gets even more confusing when looking at MariaDB, as the documentation for MariaDB does not give any limits (which certainly exist).
You're mixing up several different limits.
MySQL has a 64KB limit on the size of a given row (not counting BLOB/TEXT/JSON). This limit still exists.
MySQL used to store metadata about the table in a file with a
.frmextension. This did not store any rows, but it stored metadata, i.e. most of what becomesSHOW CREATE TABLE. The table name, columns, data types, constraints, defaults, character sets, metadata comments, etc.A part of the
.frmfile was also limited to 64KB, but that had nothing to do with the 64KB row size limit. The fact that the size was the same was effectively a coincidence. This blog covers this subject in more detail: https://www.percona.com/blog/understanding-the-maximum-number-of-columns-in-a-mysql-table/The
.frmfiles were obsoleted in MySQL 8.0 when they reimplemented the metadata system with the data dictionary. That's what the first link explains.In the second link, there is no mention of a 46KB size limit. There is a mention that MySQL has a limit of 4096 columns per table, but this is not related to the size limit of a row or size limit of metadata. Did you misread this?
As far as MariaDB goes, it is a fork of MySQL so many limits are still the same as what MySQL's limits were at the time of the fork. https://mariadb.com/kb/en/innodb-limitations/ states:
65,535 bytes is the same as 64KB.
That said, MariaDB is different from MySQL. MariaDB forked from MySQL in 2010, and MariaDB is more and more incompatible with MySQL as time goes on and both products make changes without regard to maintaining compatibility. For example, MariaDB still uses
.frmfiles because they forked from MySQL long before the new data dictionary was implemented.