У меня есть таблица MySQL, где я бы хотел, чтобы мой первичный ключ был строкой. Эта строка может быть немного длиннее (сотни символов).MySQL - скорость сравнения строк для первичного ключа
Очень распространенный запрос будет INSERT ... ON DUPLICATE KEY UPDATE
, что означает, что MySQL должен будет проверить, существует ли первичный ключ в таблице. Если это делается с наивным strcmp, я предполагаю, что это может занять некоторое время, чем дольше строки. Было бы лучше ли хэш строки вручную (либо более короткой строкой, либо некоторым другим типом данных) и использовать это как мой первичный ключ, или я могу просто использовать длинную строку напрямую? Является ли MySQL первичными ключевыми строками MySQL внутри?
Вы не собираетесь в одиночку перехитрить базу кода похваляясь миллионы строк и сотни наблюдатели. Пусть MySQL выполнит свою задачу. –
Читайте здесь http://stackoverflow.com/questions/517579/strings-as-primary-keys-in-sql-database – Yogus