Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

สรุปจากการอ่านเรื่อง Reducing Database Loading

$
0
0

จากบทความเรื่อง Reducing Database Loading
อธิบายถึงแนวทางการลดการใช้งาน database ได้อย่างไรบ้าง
รวมทั้งแนวทางให้ database มีความยืดหยุ่นต่อการใช้งานมากยิ่งขึ้น
มาดูว่ามีวิธีการอะไรที่น่าสนใจบ้าง
เป็นเรื่องพื้นฐานที่สำคัญมาก ๆ
มาเริ่มกันเลย

วิธีการแรก ใช้ caching data สำหรับการอ่านข้อมูล

เพื่อช่วยลดการอ่านข้อมูลจาก database ตรง ๆ
แสดงการทำงานดังรูป

ปัญหาของการใช้งาน caching data คือ ความถูกต้องของข้อมูล
ถ้าข้อมูลใน database มีการเปลี่ยนแปลง
ข้อมูลใน caching ต้องเปลี่ยนแปลงด้วยเช่นกัน
มิเช่นนั้นอาจจะก่อให้เกิดปัญหาตามมาได้

วิธีการที่สอง Denormalization

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

ยกตัวอย่างการสร้างข้อมูลสำหรับการอ่านขึ้นมาแบบ synchornous

หรืออาจจะทำการ replication ข้อมูลแบบ asynchronous ก็ได้

มีวิธีการเพียง เช่น

  • CQRS
  • ETL
  • CDC
  • Streaming

วิธีการที่สาม Async Request/Response

แสดงการทำงานดังรูป

จะทำการส่ง event จาก request ต่าง ๆ ไปยัง event handler
เพื่อลดความกดดันจาก request ปริมาณมาก ๆที่เข้าใช้งาน database
ถ้าเป็นแบบปกติคือ synchronous เมื่อมี request มาเยอะ ๆ
ระบบจะทำการสร้าง thread ขึ้นมา เพื่อรองรับ request เหล่านั้น
ซึ่งอาจจะส่งผลต่อ performance นั่นเอง
ดังนั้น ถ้าแยกออกมา และ ติดต่อสื่อสารแบบ asynchronous
น่าจะช่วยลดปัญหาลง
แต่การทำงานต้องไม่ช้า หรือ ส่งผลต่อผู้ใช้งานมากจนเกินไป
หรืออาจจะต้องมีการออกแบบ process การใช้งานให้เหมาะสมอีกด้วย


Viewing all articles
Browse latest Browse all 1997

Trending Articles