Я планирую базу данных, которая имеет мини-план счетов. коды Моя учетная запись являются имена, как:Влияние длинного символа в качестве первичного ключа
- CURRENT_DEBTORS
- CURRENT_CREDITORS
- CASH_AT_BANK
Я имею в виду, используя коды счетов в качестве первичного ключа в базе данных учетных записей, что будет означать его бы быть внешним ключом в таблице транзакций. Поле будет чем-то вроде CHAR (20) в MySql. Таблица транзакций будет получать около 10 000 записей в месяц.
Как этот индекс длинного иха влияет на производительность? Я могу использовать суррогатный ключ, если я тоже, но предпочел бы не слишком. (Разумеется, я не слишком беспокоюсь о дискового пространства).
Является ли это 'CHAR (20) utf8'? Если это так, это занимает 60 байт. Сделайте это «CHARACTER SET ascii», если это необходимо. –
Бывают случаи, когда «натуральный» ПК на самом деле быстрее и меньше, чем добавление суррогатной «AUTO_INCREMENT' PK. Одним из примеров является отсутствие вторичного ключа. –