เรากำลังใช้ PostgreSQL v8.2.3
มีตารางที่เกี่ยวข้อง: พนักงานและEMAILLIST
Table 1: EMPLOYEE (column1, column2, email1, email2, column5, column6)
Table 2: EMAILLIST (email)
มีการรวม 2 ตารางเข้าด้วยกันซึ่งหาก EMPLOYEE.EMAIL1 หรือ EMPLOYEE.EMAIL2 ไม่ได้เข้าคู่กันแถวเหล่านั้นจะถูกส่งกลับ
SELECT employee.email1, employee.email2,
e1.email IS NOT NULL AS email1_matched, e2.email IS NOT NULL AS email2_matched
FROM employee
LEFT JOIN emaillist e1 ON e1.email = employee.email1
LEFT JOIN emaillist e2 ON e2.email = employee.email2
WHERE e1.email IS NULL OR e2.email IS NULL
คอลัมน์EMAIL
ซึ่งเป็นvarchar (256)ของEMAILLIST
ตารางถูกทำดัชนี ตอนนี้เวลาตอบสนองคือ 14 วินาที
สถิติการนับตาราง: ปัจจุบัน EMPLOYEE มีเร็กคอร์ด 165,018 & EMAILLIST ได้ 1,810,228 บันทึกและคาดว่าทั้งสองตารางจะเติบโตในอนาคต
- มันเป็นความคิดที่ดี / วิธีการจัดทำดัชนีคอลัมน์ VARCHAR? คำถามนี้ตอบคำถามฉันทันทีเพราะเหตุผลที่เราไม่ได้จัดทำดัชนีคอลัมน์ VARCHAR ไว้ก่อนในใบสมัครของเรา คำแนะนำจากผู้เชี่ยวชาญ / ข้อเสนอแนะเกี่ยวกับเรื่องนี้ได้รับการชื่นชมอย่างมาก
- ด้วยการสืบค้นและดัชนีปัจจุบันเวลาตอบสนอง 14 วินาทีนั้นสมเหตุสมผลหรือมีขอบเขตสำหรับการปรับแต่งเพิ่มเติมหรือไม่ ประสบการณ์ / ความคิดเห็นแบบเรียลไทม์ของผู้ใช้รายอื่นที่มาจากขนาดของตารางและเวลาตอบสนองคืออะไร
หมายเหตุ:กรณี / ความต้องการการใช้งานจริงของฉันคือการอธิบายในรายละเอียดที่นี่