Skip to content

Month: March 2015

MongoDB: ปัญหา write performance ช้าลงเมื่อทำ index หลาย field

ผมอ่าน release note ของ MongoDB 3.0 ไปบ้างแล้ว เหตุที่ MongoDB 3.0 ต้องปรับปรุงประสิทธิภาพการเขียนข้อมูล, การทำ index และเปิดให้ใช้ storage engine ตัวใหม่เพื่อรองรับงานที่มีการเขียนหนักๆ (ยกตัวอย่างเช่น IoT) เพราะหากมีการทำ index หลาย field และมีการ insert เข้ามาเร็วๆ ความเร็วในการ insert จะลดลงค่อนข้างเห็นได้ชัด

วันนี้เจอกับตัวเองเลยครับ จริงๆ Official document ก็เตือนไว้แต่เนื่องจากคนมันดื้อเลยใช้ต่อ (สมน้ำหน้า :p) แต่ใช้ไปใช้มาแล้วมันช้าพาลหงุดหงิดเลยต้องแก้ปัญหาเฉพาะหน้าไปก่อน โดยการ drop index ทิ้งไปก่อน insert เสร็จแล้วค่อยสั่ง ensureIndex() อีกครั้ง (ช้า-เร็วแล้วแต่ปริมาณข้อมูล) หรือถ้าเป็นแอปพลิเคชันที่จำเป็นต้องทำงานอยู่ตลอดอาจจะต้องทำ replication หรือแยกเป็น 2 ก้อน ก้อนนึงใช้เก็บอย่างเดียว อีกก้อนก็ทำ index ใช้งานปกติ

Leave a Comment