https://habr.com/ru/articles/665024/
случайное значение, поэтому новая строка может попасть в начало, середину или конец таблицы. Серверу БД в этом случае придётся перемещать другие строки, что приведёт к фрагментации данных, а их извлечение может занять больше времени
Не совсем ясен такой момент.
Есть таблица, с полями "text" и "hash", где "hash" - это primary key и содержит md5 текста (binary(16) not null). Таблица часто join-тся в запросах через hash. Будет ли производительнее, если добавить bigint (строк может быть очень много) autoincrement в качестве primary key, и его использовать в join?
Интересует скорость только чтения из БД, не запись.
БД - MariaDB.
P.S. Просто из той статьи появилось предположение, что, как минимум для MariaDB/MySQL, наличие числового последовательного primary key, даже если он не используется в запросах, заметно важно для скорости чтения, т.к. в таком случае данные на диске расположены несколько "согласованно". Так ли это? Или создавать такой ключ просто ради того, что бы был - полная бессмыслица?