9 คะแนน โดย yunyun0505 2023-07-14 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

นี่คือตัวอย่างการปรับปรุงบริการค้นหาด้วยวิศวกรรมที่พอดีและเหมาะกับสถานการณ์

การตระหนักถึงปัญหา

  • บริการค้นหาที่ช้าลง
  • รับรู้ปัญหาความซับซ้อนจากการใช้ Join และ Regular Expression เพื่อการค้นหา

กลยุทธ์การแก้ปัญหา

  • เคยพิจารณา Elasticsearch ในช่วงแรก
  • มีประเด็นด้านต้นทุนเพราะต้องจัดการทั้งความเป็นเรียลไทม์ร่วมกับ Main DB และข้อมูลจำนวนมากที่ต้องเก็บถาวร
  • สร้างตารางเฉพาะสำหรับการค้นหาที่เรียบง่ายขึ้นและออกแบบ search query
  • ใช้ MySQL Trigger เพื่อโหลดข้อมูล

ผลลัพธ์

  • ปรับปรุง query ที่เคยใช้เวลา 3 นาที ให้เหลือ 2 วินาที
  • ส่งมอบคุณค่าให้ลูกค้าได้รวดเร็วด้วยวิศวกรรมที่ไม่เกินความจำเป็น

2 ความคิดเห็น

 
neidn 2023-07-20

ดูเหมือนว่าจะนำวิธีแยกตารางหลายตารางสำหรับข้อมูลชุดเดียวกันตามวัตถุประสงค์การใช้งานมาใช้ ซึ่งมักใช้ตอนสร้างเว็บไซต์ขนาดใหญ่ที่มีปริมาณการเข้าถึงสูง
บางครั้งก็แยกเป็นสำหรับลูกค้าและสำหรับผู้ดูแลระบบแบบนี้ แต่กรณีนี้เป็นตัวอย่างที่นำไปใช้กับงานค้นหาได้อย่างเหมาะสมครับ

 
cosine20 2023-07-19

ผมไม่ค่อยรู้เรื่องสาย DB เท่าไร เลยรู้สึกว่าบทความข้อมูลแบบนี้ทั้งน่าทึ่งและสนุกดีครับ