.## 1. MySQL TINYINT คืออะไร?
ใน MySQL, TINYINT เป็นประเภทข้อมูลที่ใช้เก็บจำนวนเต็มขนาดเล็กมาก TINYINT ใช้หน่วยความจำ 1 ไบต์ (8 บิต) และสามารถเก็บค่าได้ตั้งแต่ -128 ถึง 127 เมื่อเป็น signed, หรือจาก 0 ถึง 255 เมื่อเป็น unsigned. TINYINT มักใช้เพื่อจัดการค่าตัวเลขขนาดเล็กและแฟล็กแบบ Boolean อย่างมีประสิทธิภาพ.
คุณสมบัติของ TINYINT
- ประหยัดหน่วยความจำ : เนื่องจาก
TINYINTใช้เพียง 1 ไบต์ จึงช่วยประหยัดหน่วยความจำมากกว่าประเภทจำนวนเต็มอื่น ๆ เช่นINTหรือBIGINT. - ตัวเลือก signed และ unsigned : TINYINT แบบ signed สามารถเก็บค่าติดลบได้, ส่วนการใช้ตัวเลือก unsigned จะขยายช่วงค่าบวกสูงสุด.
ตัวอย่างการใช้ TINYINT
ในตัวอย่างต่อไปนี้ จะสร้างตารางโดยใช้ประเภท TINYINT เพื่อจัดการค่าตัวเลขขนาดเล็กและแฟล็ก.
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 เป็นประเภทข้อมูลที่เหมาะสมสำหรับการจัดการจำนวนเต็มขนาดเล็กและค่าบูลีน. มักใช้เพื่อเพิ่มประสิทธิภาพของฐานข้อมูลและลดการใช้พื้นที่จัดเก็บ.
ใช้ TINYINT เป็นค่า Boolean
เนื่องจาก MySQL ไม่มีประเภท BOOLEAN แยกเฉพาะ, TINYINT(1) จึงมักใช้แทนเพื่อจัดการค่าบูลีน. โดยทั่วไป 0 แทน “เท็จ” และ 1 แทน “จริง”. วิธีนี้ทำให้การจัดการแฟล็กเป็นเรื่องง่าย.
UPDATE user_status SET is_active = NOT is_active WHERE user_id = 1;
ในตัวอย่างนี้ ค่าของ is_active สำหรับผู้ใช้ที่ระบุจะถูกสลับค่า ซึ่งทำให้การเปลี่ยนค่าบูลีนเป็นเรื่องง่าย.
จัดการค่าตัวเลขขนาดเล็ก
เช่นเดียวกัน TINYINT ยังมีประโยชน์เมื่อจัดการจำนวนเต็มในช่วงที่เล็กมาก, เช่น จำนวนสินค้าคงคลัง. หากจำนวนสินค้าจะไม่เกิน 255, การใช้ TINYINT UNSIGNED จะเพียงพอและช่วยจัดการข้อมูลได้อย่างมีประสิทธิภาพในช่วงค่าที่ไม่มีเครื่องหมายลบ.

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


