Я переглядав скиди SQL деяких відомих CMS, включаючи Drupal 7, Wordpress (якась дуже стара версія) та деякі спеціальні програми на основі Python.
Усі ці дампи містили дані зі строковими прапорами замість цілих. Наприклад, статус на посаду був представлений як published
, closed
або inherit
замість 1
, 2
або 3
.
У мене досить обмежений досвід проектування баз даних, і я ніколи не проходив повз простих SQL, але мене завжди вчили, що я повинен використовувати числові / цілі прапори для таких даних. Цілком очевидно , що tinyint
споживає набагато менше місць в базі даних , ніж, наприклад, varchar(9)
.
То що мені не вистачає? Чи не марно це зберігання даних та надмірність даних? Чи не перегляд, пошук та індексація не будуть трохи швидшими, якби ці стовпці використовували цілі числа замість рядків?
char
s? Як неефективний!" застаріла порівняно з 2015 р.