ฉันเรียกคอลัมน์นี้ว่า "gender"
Data Type Bytes Taken Number/Range of Values
------------------------------------------------
TinyINT 1 255 (zero to 255)
INT 4 - 2,147,483,648 to 2,147,483,647
BIT 1 (2 if 9+ columns) 2 (0 and 1)
CHAR(1) 1 26 if case insensitive, 52 otherwise
BITชนิดข้อมูลสามารถปกครองออกเพราะสนับสนุนเพียงสองเพศที่เป็นไปได้ที่ไม่เพียงพอ แม้ว่าINTรองรับมากกว่าสองตัวเลือก แต่ก็ใช้เวลา 4 ไบต์ - ประสิทธิภาพจะดีขึ้นเมื่อใช้ประเภทข้อมูลที่เล็กลง / แคบกว่า
CHAR(1)
มีขอบเหนือTinyINT - ทั้งสองใช้จำนวนไบต์เท่ากัน แต่ CHAR ให้จำนวนค่าที่แคบกว่า การใช้CHAR(1)
จะทำให้ใช้ "m", "f" ฯลฯ คีย์ธรรมชาติเทียบกับการใช้ข้อมูลตัวเลขซึ่งเรียกว่าคีย์แทน / คีย์เทียม CHAR(1)
ได้รับการสนับสนุนบนฐานข้อมูลใด ๆ หากจำเป็นต้องพอร์ต
ข้อสรุป
ฉันจะใช้ตัวเลือกที่ 2: CHAR (1)
ภาคผนวก
ดัชนีในคอลัมน์เพศน่าจะไม่ช่วยได้เนื่องจากไม่มีค่าในดัชนีในคอลัมน์คาร์ดินาลลิตี้ต่ำ ความหมายมีค่าไม่หลากหลายเพียงพอสำหรับดัชนีที่จะให้ค่าใด ๆ