Ви часто бачите, що поля баз даних мають величину 255 символів, яка традиційна / історична причина? Я припускаю, що це щось стосується обмежень сторінки / пам’яті та продуктивності, але відмінність між 255 та 256 завжди мене бентежила.
varchar(255)
Зважаючи на те, що це ємність чи величина, а не індексатор , чому 255 кращих перед 256? Чи байт зарезервований для якоїсь мети (термінатор, нуль чи щось)?
Імовірно, варчар (0) - це нісенітниця (має нульову ємність)? У якому випадку 2 ^ 8 простору повинно бути 256?
Чи існують інші масштаби, які забезпечують ефективність роботи? Наприклад, чи менш варчар (512) менш ефективний, ніж варчар (511) або варчар (510)?
Чи однакове це значення для всіх баз даних відносин, старих і нових?
відмова від відповідальності - я розробник, а не DBA, використовую розміри та типи полів, які відповідають моїй бізнес-логіці, коли це відомо, але я хотів би знати історичну причину цього переваги, навіть якщо це більше не актуально (але навіть більше, якщо це все-таки актуально).
Редагувати:
Дякую за відповіді, мабуть, існує певне визнання, що байт використовується для зберігання розміру, але це не вирішує цю проблему остаточно.
Якщо метадані (довжина рядка) зберігаються в одній суміжній пам'яті / диску, це має певний сенс. 1 байт метаданих та 255 байт рядкових даних дуже добре підійдуть між собою та вписуються в 256 суміжних байтів сховища, що, імовірно, є акуратним та охайним.
Але ... Якщо метадані (довжина рядка) зберігаються окремо від фактичних даних рядка (можливо, у головній таблиці), то для обмеження довжини даних рядка на один байт, тільки тому, що простіше зберігати лише ціле число 1 байт метаданих здається трохи дивним.
В обох випадках це може бути тонкощі, що, мабуть, залежить від реалізації БД. Практика використання 255 здається досить розповсюдженою, тому хтось десь, мабуть, на початку сперечався з хорошою справою, чи хтось може пригадати, що це за справа була? Програмісти не приймуть жодної нової практики без причини, і це, мабуть, було колись новим.