Caching
สารบัญ
Add a header to begin generating the table of contents
Caching คืออะไร?
Caching (การแคช) คือการจัดเก็บข้อมูลที่ช่วยให้สามารถเข้าถึงข้อมูลที่คำนวณหรือดึงข้อมูลก่อนหน้านี้ได้อย่างรวดเร็วด้วยความเร็วสูง แทนที่จะเข้าถึงตำแหน่งที่จัดเก็บหลัก
Caching ทำงานอย่างไร?
ข้อมูลแคช ในแคชมักจะจัดเก็บไว้ในฮาร์ดแวร์ที่เข้าถึงได้อย่างรวดเร็ว เช่น RAM (หน่วยความจำเข้าถึงโดยสุ่ม) และสามารถใช้กับส่วนประกอบซอฟต์แวร์ได้ จุดประสงค์พื้นฐานของแคชคือเพื่อปรับปรุงการดำเนินการดึงข้อมูลโดยหลีกเลี่ยงการเข้าถึงเลเยอร์สตอเรจที่ช้ากว่าและอยู่ภายใต้ ตัวอย่างเช่น ฐานข้อมูลทั่วไปให้การจัดเก็บข้อมูลที่คงทนและสมบูรณ์ ในขณะที่การแคช จะจัดเก็บข้อมูลชุดย่อยชั่วคราว
ประโยชน์ของการแคช
การแคชนั้นมีประโยชน์หลายประการ:
- ปรับปรุงประสิทธิภาพของแอปพลิเคชัน: การอ่านข้อมูลจากแคชในหน่วยความจำใช้เวลาไม่ถึงมิลลิวินาที การเข้าถึงนี้ช่วยปรับปรุงประสิทธิภาพโดยรวมของแอปพลิเคชัน
- ลดค่าใช้จ่ายของฐานข้อมูล: หนึ่งอินสแตนซ์แคชสามารถให้ IOPS (การดำเนินการอินพุต/เอาต์พุตต่อวินาที) หลายพันรายการ แทนที่จำนวนอินสแตนซ์ฐานข้อมูล ทำให้ต้นทุนรวมลดลง โดยเฉพาะอย่างยิ่งหากฐานข้อมูลหลักคิดค่าใช้จ่ายต่อปริมาณงาน
- ลดการโหลดฐานข้อมูลส่วนหลัง: การลดภาระส่วนหลังโดยการเปลี่ยนทิศทางส่วนต่างๆ ไปยังเลเยอร์ในหน่วยความจำ ช่วยป้องกันประสิทธิภาพการทำงานที่ช้าหรือหยุดทำงานในช่วงที่ความเร็วเพิ่มขึ้น
- ความสามารถในการคาดการณ์ประสิทธิภาพ: การใช้แคชในหน่วยความจำความเร็วสูงช่วยลดเวลาการใช้งานแอปที่พุ่งสูงขึ้นอย่างคาดเดาไม่ได้ และด้วยเหตุนี้จึงสามารถเข้าถึงข้อมูลแฝงได้ เช่น เว็บไซต์อีคอมเมิร์ซในวัน Black Friday หรือวันเลือกตั้ง
- ลบฮอตสปอตของฐานข้อมูล: การจัดเก็บคีย์มาตรฐานในแคชในหน่วยความจำช่วยลดการจัดสรรทรัพยากรฐานข้อมูลมากเกินไปสำหรับข้อมูลที่คุณเข้าถึงบ่อยที่สุด (เช่น ผลิตภัณฑ์ยอดนิยม) ในขณะที่ให้ประสิทธิภาพที่รวดเร็วและคาดการณ์ได้
- เพิ่มทรูพุตการอ่าน (IOPS): นอกจากเวลาแฝงที่น้อยลงแล้ว ระบบในหน่วยความจำยังมีอัตราการร้องขอ (IOPS) ที่สูงขึ้นเมื่อเทียบกับฐานข้อมูลบนดิสก์ที่เทียบเคียงได้ ตัวอย่างเช่น หนึ่งอินสแตนซ์ที่ใช้เป็นแคชด้านข้างแบบกระจายสามารถรองรับคำขอได้หลายพันรายการต่อวินาที
สรุป
แทนที่จะใช้ฐานข้อมูลบนดิสก์ที่ช้ากว่า ข้อมูลแคชช่วยปรับปรุงประสิทธิภาพของเว็บแอปด้วยการเปิดใช้งานพื้นที่จัดเก็บในหน่วยความจำที่มีการจัดการที่รวดเร็ว