1. MySQL TINYINT คืออะไร?
TINYINT
ใน MySQL เป็นชนิดข้อมูลที่ใช้สำหรับเก็บค่าจำนวนเต็มขนาดเล็กมาก TINYINT
ใช้หน่วยความจำเพียง 1 ไบต์ (8 บิต) โดยในรูปแบบ signed สามารถเก็บค่าได้ตั้งแต่ -128
ถึง 127
และในรูปแบบ unsigned จะเก็บค่าได้ตั้งแต่ 0
ถึง 255
ชนิดข้อมูลนี้มักถูกใช้เพื่อจัดการค่าตัวเลขเล็ก ๆ หรือค่าแบบจริง/เท็จ (Boolean) อย่างมีประสิทธิภาพ
คุณสมบัติของ TINYINT
- ประสิทธิภาพด้านหน่วยความจำ:
TINYINT
ใช้เพียง 1 ไบต์ ทำให้ประหยัดหน่วยความจำมากกว่า INT หรือ BIGINT - Signed และ Unsigned: แบบ signed รองรับค่าลบ ในขณะที่แบบ unsigned จะเพิ่มขอบเขตของค่าบวก
ตัวอย่างการใช้งาน TINYINT
ตัวอย่างต่อไปนี้เป็นการสร้างตารางที่ใช้ TINYINT
เพื่อจัดการค่าตัวเลขเล็ก ๆ หรือ flag:
CREATE TABLE user_status (
user_id INT PRIMARY KEY,
is_active TINYINT(1) NOT NULL DEFAULT 0
);
ในตัวอย่างนี้ คอลัมน์ is_active
ถูกกำหนดให้เป็น TINYINT(1)
ใช้สำหรับเก็บสถานะการใช้งานของผู้ใช้ โดยค่า 0 หมายถึง “ไม่ใช้งาน” และค่า 1 หมายถึง “ใช้งานอยู่”
2. กรณีการใช้งาน TINYINT
TINYINT
เหมาะสำหรับเก็บค่าจำนวนเต็มขนาดเล็กหรือค่า Boolean โดยเฉพาะอย่างยิ่งเมื่อเน้นประสิทธิภาพและการประหยัดพื้นที่จัดเก็บ
ใช้แทนค่า Boolean
MySQL ไม่มีชนิดข้อมูล BOOLEAN
โดยตรง จึงนิยมใช้ TINYINT(1)
แทน โดยทั่วไป 0
หมายถึง “False” และ 1
หมายถึง “True” วิธีนี้ทำให้จัดการ flag ได้ง่าย
UPDATE user_status SET is_active = NOT is_active WHERE user_id = 1;
ในตัวอย่างนี้ ค่าของ is_active
จะถูกสลับจาก 0 เป็น 1 หรือจาก 1 เป็น 0 อย่างง่ายดาย
การจัดการค่าตัวเลขขนาดเล็ก
เช่น การจัดการจำนวนสินค้าในสต็อก หากจำนวนไม่เกิน 255 สามารถใช้ TINYINT UNSIGNED
ได้อย่างเพียงพอและมีประสิทธิภาพ

3. เปรียบเทียบ TINYINT กับชนิดข้อมูลจำนวนเต็มอื่น
ใน MySQL มีชนิดข้อมูลจำนวนเต็มหลายแบบ โดย TINYINT
เป็นชนิดที่เล็กที่สุด ขณะที่ INT
และ BIGINT
สามารถเก็บค่าตัวเลขที่ใหญ่กว่าได้
ความแตกต่างกับ INT
INT
ใช้พื้นที่ 4 ไบต์ เก็บค่าได้ตั้งแต่ -2147483648
ถึง 2147483647
ขณะที่ TINYINT
ใช้เพียง 1 ไบต์ เก็บค่าได้ในช่วง -128
ถึง 127
(signed) หรือ 0
ถึง 255
(unsigned) ซึ่งช่วยประหยัดหน่วยความจำ
เปรียบเทียบกับชนิดจำนวนเต็มขนาดเล็กอื่น ๆ
นอกจาก TINYINT
ยังมี SMALLINT
(2 ไบต์), MEDIUMINT
(3 ไบต์) เป็นต้น แต่ละชนิดมีช่วงค่าต่างกัน ดังนั้นควรเลือกใช้ให้เหมาะสม
4. การใช้ Signed และ Unsigned
ใน MySQL สามารถกำหนด TINYINT
แบบ signed หรือ unsigned ได้ ขึ้นอยู่กับว่าต้องการเก็บค่าลบหรือไม่
ข้อดีของ Unsigned TINYINT
TINYINT UNSIGNED
เก็บค่าได้ตั้งแต่ 0
ถึง 255
เหมาะสำหรับข้อมูลที่ไม่ต้องการค่าลบ เช่น อายุผู้ใช้หรือจำนวนสินค้า
ข้อดีของ Signed TINYINT
TINYINT
แบบ signed เก็บค่าได้ตั้งแต่ -128
ถึง 127
เหมาะกับข้อมูลที่อาจมีค่าลบ เช่น อุณหภูมิ

5. ตัวอย่างการใช้งาน TINYINT
ตัวอย่างการใช้ TINYINT
ในการจัดการข้อมูล เช่น ตารางสินค้าที่เก็บจำนวนสินค้า
CREATE TABLE products (
product_id INT PRIMARY KEY,
quantity TINYINT UNSIGNED NOT NULL
);
ในตัวอย่างนี้ คอลัมน์ quantity
เก็บจำนวนสินค้าได้สูงสุด 255 ชิ้น และมีการกำหนด NOT NULL
เพื่อบังคับให้ต้องมีค่า
นอกจากนี้ยังสามารถใช้ TINYINT
สำหรับจัดการสถานะของผู้ใช้หรือ flag อื่น ๆ ได้ ซึ่งช่วยเพิ่มประสิทธิภาพของฐานข้อมูลโดยรวม
6. บทสรุปและแนวทางการใช้งานที่เหมาะสม
TINYINT
เป็นชนิดข้อมูลที่มีประสิทธิภาพสูง เหมาะสำหรับการจัดการค่าจำนวนเต็มขนาดเล็กและค่า Boolean การใช้ TINYINT
อย่างเหมาะสมจะช่วยเพิ่มความเร็วและประหยัดพื้นที่จัดเก็บของฐานข้อมูล