Це залежить від вашого двигуна. Поширена думка полягає в тому, що читання коштує дешево, кілька байт тут і там істотно не впливатимуть на роботу малої та середньої бази даних.
Що ще важливіше, це залежить від використання, до якого ви поставите первинний ключ. Цілі серіали мають перевагу в тому, що вони прості у використанні та реалізації. Вони також, залежно від конкретної реалізації методу серіалізації, мають перевагу в швидкості отримання , оскільки більшість баз даних просто зберігають серійний номер у фіксованому місці, а не отримують його з Select max(ID)+1 from foo
льоту.
Постає питання: як клавіша з 5 символів представляє "значуще значення" для вас та програми? Як створюється це значення і чи займає це більше чи менше часу, ніж пошук збільшення серійного номера. Хоча в деяких цілих числах зберігається тривіальна кількість місця, переважна більшість систем проігнорує цю економію місця.
Немає жодних наслідків для продуктивності, окрім того, що символьна схема вимагає, щоб ніколи не було автоматичного двигуна, оскільки ваші «клавіші» недоступні. Для вашого конкретного домену не торкайтеся штучних ключів, а просто використовуйте китайські, японські та тайські в якості ключових імен. Хоча ви не можете гарантувати унікальність у будь-якому можливому застосуванні, у вашому масштабі набагато розумніше використовувати їх замість жахливих і вимушених 5-символьних скорочень. Значних наслідків щодо продуктивності немає, поки ви не досягнете мільйонів кортежів.
Крім того, якщо ви просто відстежуєте країну походження, а не конкретні регіональні кухні (кантонська, сичуанська, сицилійська, умбрійська, калабрійська, юкатеканська, оаксаканська тощо), ви завжди можете використовувати коди ISO 3166 .
Якщо у мене є 10 000 рецептів, чи не починає складатися різниця між 5-символьним та 20-символьним ключем?
Простір дешевий . Якщо ви говорите 10 000 000 рецептів, над якими ви виконуєте операції OLAP, можливо, можливо. Завдяки 10-кратним рецептам, ви дивитесь на 150 тис. Місця.
Але знову ж таки, це залежить. Якщо у вас багато мільйонів записів, і ви приєднуєтесь до них, тоді є сенс денормалізувати пошук чогось цього дрібничного (в матеріалізований вигляд). Для всіх практичних цілей відносна ефективність з'єднання на сучасному апараті між клавішею 5 символів та клавішем змінної довжини настільки схожа, щоб бути ідентичною. На щастя, ми живемо у світі багатого процесора та рясного диска. Неприємні - це занадто багато приєднань та неефективності запитів, а не порівняння між персонажами. З урахуванням сказаного, завжди тестуйте .
Тематика науково-дослідної роботи такого рівня настільки залежить від бази даних, що узагальнення надзвичайно важкі. Побудуйте дві вибіркові моделі бази даних, заповніть їх передбачуваною кількістю записів, а потім подивіться, яка з них швидша. На мій досвід, довжина символів не має великої різниці порівняно з хорошими індексами, гарною конфігурацією пам'яті та іншими критичними елементами настройки продуктивності.