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

NULL หรือ Empty String อันไหนดีกว่าสำหรับ MySQL


ใน InnoDB NULL ใช้พื้นที่น้อยกว่า Empty String และความยาวของ NULL คือ NULL ส่วน Empty String ความยาวคือ 0 (แต่ COUNT() นับเป็น 1)

ทดสอบกับตาราง DemoEmptyAndNULL:

Empty String

mysql> INSERT INTO DemoEmptyAndNULL VALUES(' ');
mysql> SELECT COUNT(message) FROM DemoEmptyAndNULL;  -- ผลลัพธ์ 1

NULL

mysql> DELETE FROM DemoEmptyAndNULL WHERE message=' ';
mysql> INSERT INTO DemoEmptyAndNULL VALUES();  -- NULL
mysql> SELECT COUNT(message) FROM DemoEmptyAndNULL;  -- ผลลัพธ์ 0

ตรวจสอบเวอร์ชัน MySQL: 8.0.12

ข้อสรุป: แม้ NULL จะประหยัดพื้นที่และ COUNT() ไม่นับ แต่การอนุญาต NULL อาจทำให้ระบบทำงานเพิ่มและไม่ได้ข้อมูลที่ต้องการ Empty String อาจเหมาะสมกว่าสำหรับบางกรณี แต่ขึ้นอยู่กับการออกแบบ