ผมเห็นในเอกสารความแตกต่างระหว่างและcount(*) count(pk)ผมเคยใช้count(pk)(ที่pkเป็นSERIAL PRIMARY KEY) count(*)ไม่ทราบว่าเกี่ยวกับการดำรงอยู่ของ
คำถามของฉันเกี่ยวกับการเพิ่มประสิทธิภาพภายในของ Postgres มันฉลาดพอที่จะรับได้หรือไม่ว่าSERIAL PRIMARY KEYจะมีอยู่ในทุกแถวและไม่ผิดและนับจำนวนแถวหรือจะตรวจสอบคำกริยาซ้ำซ้อนสำหรับแต่ละแถวหรือไม่ ฉันยอมรับว่านี่อาจเป็นการเพิ่มประสิทธิภาพที่ไม่มีจุดหมายมากเกินไป แต่ฉันแค่อยากรู้
ผมเอามาดูที่การส่งออกของได้EXPLAINและEXPLAIN VERBOSEสำหรับcount(*), count(id)และcount(id > 50)เพื่อดูว่าEXPLAINกล่าวถึงการตรวจสอบภาคในการส่งออกของตน มันไม่ได้