Некоторые люди достигают максимального размера строки около 8000 байт.Переход на 32 КБ страниц удваивает этот предел.Однако переключение на 64 КБ не выходит за пределы 16 КБ.
Так как блоки InnoDB имеют тенденцию быть разбросанными вокруг диска, наличие больших блоков немного сэкономит при движении руки на жестком диске.Я ожидаю, что это будет только однозначное улучшение в процентах .И это будет варьироваться в зависимости от вида деятельности.Недавно загруженная таблица может не показать улучшения;таблица с большим количеством оттока может показать некоторые из них.
Если ваш набор данных вписывается в buffer_pool , то ввод / вывод будет небольшим, поэтому размер блока не приходитв игру много.
Стоимость движения рычага несколько минимизируется драйверами или контроллерами, которые оптимизируют порядок дисковых операций.RAID с кешем делает особенно хорошую работу, и он может делать записи практически мгновенно.«Удар кулаком», вероятно, добавляет к частоте движения руки.Классический компромисс: «скорость против пространства».
Если ваш набор данных слишком большой , чтобы поместиться в ОЗУ, и если вы выполняете много «точечных запросов», то меньше размер блока будет лучше.Но если вы выполняете много табличных (или индексных) сканирований, больший размер блока имеет небольшое преимущество.
Имейте в виду, что all данные должны использовать один и тот же размер блока.
Из тысячи вопросов форума, которые я видел, я не думаю, что кто-либо изменил размер блока.Вы будете в неизведанных водах.
Также обратите внимание, что, хотя ROW_FORMAT=COMPRESSED
экономит некоторое дисковое пространство, он жует некоторое ОЗУ - это потому, что некоторые (все?) Блоки сохраняютсяв оперативной памяти как сжатые, так и несжатые.
Числа, которые я видел для этого row_format, составляют всего 50%.Любой приличный алгоритм сжатия сжимает практически любой вид текста примерно на 2/3.Поэтому, если у меня возникает желание использовать сжатие, я сжимаю сжимаемые столбцы (например, TEXT
, но не jpgs) и делаю это в клиенте , тем самым снимая нагрузку с ЦП с сервера.Я считаю (без каких-либо веских доказательств), что это лучший способ для сжатия ваших данных.Кроме того, я почти никогда не использую BIGINT
.
(все, что я здесь говорю, это теоретический , основанный либо на очень ограниченной документации MySQL, либо на принципах работы жестких дисков.)
У меня есть Правило большого пальца для оптимизации.«Если расчеты за пределами конверта оценивают улучшение менее чем на 10%, то продолжайте - ищите что-то еще для оптимизации».
Итак, я говорю «двигаться дальше».