สิ่งที่ต้องระวังอย่างหนึ่งคือ InnoDB Log Buffer ขนาดถูกกำหนดโดยinnodb_log_buffer_size นี่คือสิ่งที่เอกสาร MySQL พูดถึง:
ขนาดเป็นไบต์ของบัฟเฟอร์ที่ InnoDB ใช้เพื่อเขียนไปยังไฟล์บันทึกบนดิสก์ ค่าเริ่มต้นคือ 8MB บัฟเฟอร์บันทึกขนาดใหญ่ทำให้ธุรกรรมขนาดใหญ่สามารถรันได้โดยไม่จำเป็นต้องเขียนบันทึกลงดิสก์ก่อนทำรายการ ดังนั้นถ้าคุณมีการทำธุรกรรมขนาดใหญ่ทำให้บัฟเฟอร์การบันทึกที่มีขนาดใหญ่กว่าบันทึก I / O ของดิสก์
ไม่ควรสับสนกับ InnoDB Log Buffer กับ InnoDB Buffer Pool ความแตกต่างที่สำคัญระหว่างพวกเขาคือจุดประสงค์ของพวกเขา โดยทั่วไป InnoDB Log Buffer จะบันทึกการเปลี่ยนแปลงระยะสั้นที่เขียนลงในบันทึกการทำซ้ำ (ib_logfile0, ib_logfile1) InnoDB Buffer Pool (ขนาดโดยinnodb_buffer_pool_size ) แคชข้อมูลและหน้าดัชนีที่จะถูกคอมมิต (หากหน้าสกปรก) และเขียนไปยังดิสก์ในที่สุด หน้าการเปลี่ยนแปลงจะยังคงอยู่ใน RAM จนกว่าจะถูกลบออกผ่านกฎ LRU
ธุรกรรมขนาดใหญ่จะต้องผ่านช่องทางผ่าน Log Buffer ตามที่กล่าวไว้บัฟเฟอร์การบันทึกที่ใหญ่กว่าจะลดขนาดดิสก์ I / O เฉพาะคอมมิชชันขนาดใหญ่เท่านั้นที่จะแสดงคอขวด
คุณอาจต้องการดูตัวเลือก InnoDB อื่น ๆ เพื่อกำหนดค่า
ฉันมีโพสต์อื่น ๆ เกี่ยวกับการเพิ่มประสิทธิภาพ InnoDB สำหรับการวิจัยเพิ่มเติม