2
การค้นหา Trigram ช้าลงมากเมื่อสตริงการค้นหายาวขึ้น
ในฐานข้อมูล Postgres 9.1 ฉันมีตารางที่table1มีแถว ~ 1.5M และคอลัมน์label(ชื่อที่เรียบง่ายเพื่อประโยชน์ของคำถามนี้) มีดัชนีการทำงานของ Trigram-on lower(unaccent(label)) ( unaccent()ถูกทำให้ไม่เปลี่ยนรูปเพื่ออนุญาตให้ใช้ในดัชนี) แบบสอบถามต่อไปนี้ค่อนข้างเร็ว: SELECT count(*) FROM table1 WHERE (lower(unaccent(label)) like lower(unaccent('%someword%'))); count ------- 1 (1 row) Time: 394,295 ms แต่แบบสอบถามต่อไปนี้ช้าลง: SELECT count(*) FROM table1 WHERE (lower(unaccent(label)) like lower(unaccent('%someword and some more%'))); count ------- 1 (1 row) Time: 1405,749 ms และการเพิ่มคำอื่น …