Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ความแตกต่างระหว่าง BIGINT ZEROFILL และ INT ZEROFILL ใน MySQL

ความแตกต่างหลัก: ขนาดและช่วงค่า

คุณสมบัติINTBIGINT
ขนาดเก็บข้อมูล4 ไบต์ (32-bit)8 ไบต์ (64-bit)
ค่าสูงสุด Unsigned4,294,967,29518,446,744,073,709,551,615
ค่าสูงสุด Signed2,147,483,6479,223,372,036,854,775,807
ค่าต่ำสุด Signed-2,147,483,648-9,223,372,036,854,775,808

ตัวอย่างใช้งานกับ ZEROFILL

สร้างตาราง

CREATE TABLE BigintandintDemo (
    Number1 BIGINT ZEROFILL,
    Number2 INT ZEROFILL
);

เพิ่มข้อมูล

INSERT INTO BigintandintDemo VALUES (234556667777, 678999);

ผลลัพธ์การแสดงผล

Number1 (BIGINT)Number2 (INT)
000000002345566677770000678999

เมื่อไหร่ควรใช้ตัวไหน?

  • INT: ใช้ทั่วไป, ID, จำนวนนับ, อายุ, รหัสไปรษณีย์, ปี ค.ศ. (เพียงพอสำหรับ 99% ของกรณี)
  • BIGINT: ต้องการค่ามากกว่า 2 พันล้าน, Timestamp มิลลิวินาที, ID แบบ Distributed (Snowflake), การคำนวณทางวิทยาศาสตร์/การเงินขนาดใหญ่
  • ZEROFILL: ใช้สำหรับการแสดงผลเท่านั้น (เช่น รหัสสมาชิก 00000123) - Deprecated ใน MySQL 8.0.17+

คำแนะนำ

อย่าใช้ BIGINT โดยไม่จำเป็น เพราะ:

  • ใช้พื้นที่เก็บข้อมูลมากกว่า 2 เท่า
  • ดัชนี (Index) ใหญ่กว่า → ช้ากว่า
  • หน่วยความจำมากกว่า