Я знаю, что первичный ключ в InnoDB кластеризован. Таким образом, использование целого числа с автоматическим приращением в качестве первичного ключа дает преимущество того, что оно уже отсортировано, и повышает производительность вставки.
Но проблема в том, что у меня есть такая таблица с двумя столбцами id и hash (и некоторые другие, но не важные);
id int auto increment
hash Guid
Мне нужно разбить эту таблицу на столбец хеша, это означает, что я должен поместить ее в первичный ключ.
Так что я думаю о создании первичного ключа как (id, hash). Столбец id будет использоваться в соединениях с другими таблицами.
Проблема в том, что если у меня есть PK как (id, hash), как InnoDB будет его сортировать?
Будет ли он сначала использовать столбец id, а затем хэш, или он будет использовать другой способ определения порядка ключей? Первый будет лучше, так как он использует преимущества уже отсортированного столбца auto inc, но я не смог найти никакой информации о том, как будет выполняться сортировка в составных столбцах.
Любое понимание этого очень ценится:)