Нульовий простір для помилкового
Незалежно від вашого вибору, ви можете встановити NULLзамість цього, 0і це не займе зайвого місця (оскільки база даних майже завжди має NULLпрапор для кожного поля кожного рядка, просто сидячи там; більше інформації тут ). Якщо ви також переконаєтесь, що значення за замовчуванням / найімовірніше false, ви заощадите ще більше місця!
Дещо простору для правди
Значення для представлення trueвимагає простору, визначеного типом поля; Використання BITдозволить заощадити місце, лише якщо таблиця має кілька таких стовпців, оскільки вона використовує один байт на 8 полів (на відміну від того, TINYINTякий використовує один байт на поле).
TINYINTмає ту перевагу, що дозволяє налаштувати 8- значну бітову маску не турбуючись про керування купу додаткових стовпців, а пошук теоретично швидший (одне ціле поле проти кількох бітових полів). Але є деякі недоліки, такі як повільніше впорядкування, вишукані матеріали для перехресного індексування та відсутність назв полів. Що для мене найбільша втрата; вашій базі даних знадобиться зовнішня документація, щоб зазначити, які біти що робили в яких бітових масках.
У будь-якому випадку уникайте спокуси використовувати TEXTполя для зберігання логічних чи наборів з них. Пошук тексту - це набагато більше роботи для сервера, і довільні схеми імен, такі як "увімкнути, вимкнути, вимкнути", можуть зашкодити сумісності.