ทำไมต้องเป็น Myisam

กระทู้คำถาม
มีระบบอัลบั้มรูปอยู่ระบบหนึ่งซึ่งเป็นระบบเก่า ใช้ MySQL ชนิด MyISAM
ระบบนี้เป็นระบบที่มีการเก็บ stat ของการ view รูปภาพด้วยว่าแต่ละรูปมี stat การ view กี่ครั้ง
โดยตารางจะมีลักษณะคล้ายดังตารางด้านล่าง
Picture
ID   description       src               album_id  view_stat   
1     xxxxxx      /home/pic/1.jpg      7            55
2     yyyyyyy    /home/pic/2.jpg      5             66


จากการตรวจสอบพบว่า คอขวดของปัญหาอยู่ที่การนับ stat ของรูป เนื่องจากว่า ตารางเป็น
MyISAM จึงเกิด table lock เมื่อ write stat ทุกครั้งที่มีการ view รูปภาพ เมื่อคนเข้าเยอะ view
ดูภาพเยอะ stat จึงถูกเขียนบ่อย ๆ read / write บ่อย ๆ และเกิด table lock บ่อย ๆ จนทำให้
database ล่ม กำหนดให้เก็บข้อมูลรูปภาพใน MyISAM อย่างเดิม เพราะมันประหยัด RAM
มากเมื่อเทียบกับ innoDB ท่านจะใช้วิธีการใดในการแก้ปัญหาของเว็บนี้ และแก้อย่างไร
โดยให้ stat สามารถแสดงได้อย่างถูกต้องและมี performance ดีขึ้น
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่