কম্পিউটার টিউটোরিয়াল

MySQL에서 0/1 값 저장: ENUM vs TINYINT, 무엇이 나을까?

0과 1만 저장하는 플래그 컬럼이라면 TINYINT가 더 적합합니다. 저장 공간이 1바이트로 작고, 인덱스 효율도 좋으며, 숫자 연산이 직관적입니다.

TINYINT 예제

mysql> CREATE TABLE DemoTable (
    -> IsMarried TINYINT
    -> );
Query OK, 0 rows affected (0.94 sec)
mysql> INSERT INTO DemoTable VALUES(1);
Query OK, 1 row affected (0.21 sec)
mysql> INSERT INTO DemoTable VALUES(0);
Query OK, 1 row affected (0.13 sec)

데이터 조회

mysql> SELECT * FROM DemoTable;
+-----------+
| IsMarried |
+-----------+
|         1 |
|         0 |
+-----------+
2 rows in set (0.00 sec)

비교:

  • TINYINT: 1바이트, 숫자 연산 가능(SUM(IsMarried)로 기혼자 수 계산), 인덱스 친화적
  • ENUM('0','1'): 문자열 비교 필요, 내부적으론 정수지만 문자열처럼 동작, 값 추가 시 ALTER TABLE 필요
  • BOOLEAN: 실제론 TINYINT(1)의 별칭, TRUE/FALSE 리터럴 사용 가능

권장: 단순 플래그는 TINYINT UNSIGNED 또는 BOOLEAN을 쓰세요. 의미 있는 레이블이 여러 개면(예: 'Active', 'Inactive', 'Pending') ENUM을 고려하세요.

  1. MySQL-এ ENUM টাইপ ব্যবহার করে কলাম মান সীমাবদ্ধ করা

  2. MySQL-এ সঠিকভাবে DELIMITER ব্যবহার করে স্টোরড প্রসিডিউরে মান ইনসার্ট করা

  3. MySQL-এ স্ট্রিং ও নম্বর মিশ্র ডেটার জন্য ডেটা টাইপ নির্বাচন

  4. OpenWrt কী এবং কেন আপনার রাউটারের জন্য এটি ব্যবহার করা উচিত?