Например, занимает ли каждая utf8mb4 строка символ 4 байта? - Каждый символ занимает до 4 байта.
Вы можете использовать LENGTH(col)
, чтобы найти число байтов в столбце.
Вы можете использовать CHAR_LENGTH(col)
, чтобы найти количество символов в столбце.
Эти два числа будут в соотношении где-то между 1: 1 и 4: 1. Английский будет 1: 1; Западная Европа: от 1: 1 до 2: 1; Русский и греческий будут 2: 1; большинство азиатских языков будут 3: 1; Строки с Emoji могут быть близки к 4: 1.
Вы не найдете 6 символов "U + 0050" в таблицах MySQL, если вы не прошли некоторую кодировку. Не делай этого.
information_schema.tables.index_length
указывает, сколько места используется для всех вторичных индексов. Существует много причин, по которым это не связано с вашим вопросом - накладные расходы BTree, служебные данные блоков, служебные данные строк, служебные данные столбцов, указатели на подузлы и т. Д. И т. Д.