ในฐานข้อมูลส่วนใหญ่NOT NULL
คอลัมน์จะมีประสิทธิภาพมากขึ้นในแง่ของข้อมูลที่จัดเก็บด้วยเหตุผลที่คุณระบุและยังมีประสิทธิภาพในการสืบค้นและจัดทำดัชนี - ดังนั้นถ้าคุณต้องการอนุญาตให้ NULLs ในคอลัมน์คุณควรไม่อนุญาตอย่างชัดเจน
จะมีความหมายเกี่ยวกับประสิทธิภาพเล็กน้อยเนื่องจากNOT NULL
ข้อ จำกัดเพิ่มเติมอาจจำเป็นต้องถูกตรวจสอบสำหรับแต่ละแถวที่คุณส่งผลกระทบกับ INSERT หรือ UPDATE ใด ๆ แต่เนื่องจากฐานข้อมูลส่วนใหญ่มีความสัมพันธ์ในการเขียนและอ่านหนักซึ่งอาจไม่น่ากังวล เวลาพิเศษที่ใช้นั้นไม่น่าจะสังเกตได้เลยเพราะมันเป็นการทำงานของ CPU ที่การแทรก / อัปเดตส่วนที่เหลือจะเป็น IO-bound และขวดคอที่มีความสำคัญมากขึ้น) และให้คุณฟรี "การตรวจสอบข้อมูลเพื่อให้รหัสของคุณ (หรือรหัสของผู้อื่น) ไม่สามารถใส่ค่า NULL โดยไม่ได้ตั้งใจซึ่งรหัสอื่น ๆ ไม่ได้คาดหวังว่าจะได้รับผลลัพธ์ที่ไม่ถูกต้อง
แก้ไข: ปีเตอร์ชี้ให้เห็นในความคิดเห็นของเขาข้างต้นเป็นเรื่องทั่วไปและอาจไม่เป็นจริงสำหรับDMBSs ทั้งหมดแต่ฉันค่อนข้างแน่ใจว่ามันทำเพื่อ mysql และ mssql ภาวะแทรกซ้อนอื่น ๆ ในพื้นที่อาจรวมถึงคุณสมบัติต่างๆเช่นตารางที่กระจัดกระจาย (เช่น MSSQL 2008 เป็นต้นไป) ซึ่งจะเปลี่ยนแปลงการเปลี่ยนแปลงประสิทธิภาพของคอลัมน์ที่ไม่สามารถใช้ได้ (ไม่)
NULL
หากNULL
ค่านั้นมีการตีความสำหรับสิ่งที่คุณกำลังสร้างโมเดล