PostgreSQL v8.2.3 kullanıyoruz.
İlgili tablolar var: EMPLOYEE ve EMAILLIST .
Table 1: EMPLOYEE (column1, column2, email1, email2, column5, column6)
Table 2: EMAILLIST (email)
2 tablo, EMPLOYEE.EMAIL1 veya EMPLOYEE.EMAIL2'nin eşleşen bir girişi yoksa, bu satırların döndürüleceği şekilde birleştirilir.
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
Kolon EMAIL
olan varchar (256) ait EMAILLIST
tablo endekslenir. Şimdi, yanıt süresi 14 saniyedir.
Tablo sayısı istatistikleri: Halen, EMPLOYEE 165.018 kayıt aldı ve EMAILLIST 1.810.228 kayıt aldı ve her iki tablonun da gelecekte büyümesi bekleniyor.
- Bir VARCHAR sütununu indekslemek iyi bir fikir midir? Bu soru başvurumuzda daha önce bir VARCHAR sütununu dizine eklemediğimiz için hemen aklıma geldi. Bu konuda uzman tavsiyesi / öneri çok takdir edilmektedir.
- Bu güncel sorgu ve indeks ile, 14 saniyenin tepki süresi makul veya daha fazla ayarlama için herhangi bir kapsam var mı? Bu tür tablo boyutuna ve yanıt süresine dayanan diğer kullanıcıların gerçek zamanlı deneyim / görüşleri nelerdir?
NOT: Gerçek gereksinim / kullanım durumum burada ayrıntılı olarak açıklanmıştır .