IMHO คุณควรจะไปด้วย
innodb_buffer_pool_size=5G
นั่นจะเป็น 62.5% ของ RAM ที่มี RAM เพียงพอสำหรับเซิร์ฟเวอร์ OS และหน่วยความจำสำหรับการเชื่อมต่อฐานข้อมูล
@kvisleแนะนำให้ใช้ mysqltuner.pl สคริปต์นั้นยอดเยี่ยมสำหรับการตัดสินจำนวน RAM ที่จะอุทิศเพื่อเข้าร่วม _buffer_size, sort_buffer_size, read_buffer_size และ read_rnd_buffer_size บัฟเฟอร์ 4 ตัวที่รวมเข้าด้วยกันจะถูกคูณด้วย max_connections คำตอบนั้นถูกเพิ่มลงในบัฟเฟอร์คงที่ (innodb_buffer_pool_size + key_buffer_size) มีการรายงานจำนวนเงินรวม หากผลรวมรวมนั้นเกิน 80% ของ RAM นั่นคือเมื่อคุณต้องลดขนาดบัฟเฟอร์เหล่านั้นลง mysqltuner.pl จะมีประโยชน์มากในเรื่องนี้
เนื่องจากข้อมูลทั้งหมดของคุณคือ InnoDB คุณสามารถสร้าง key_buffer_size (บัฟเฟอร์แคชคีย์สำหรับดัชนี MyISAM) ต่ำมาก (ฉันแนะนำ 64M)
นี่คือการโพสต์ที่ฉันทำใน DBA StackExchange การคำนวณขนาดที่แนะนำของ innodb_buffer_pool_size
อัพเดท 2011-10-15 19:55 EDT
หากคุณรู้ว่าคุณจะมีข้อมูล 5GB คำแนะนำแรกของฉันก็คือตกลง อย่างไรก็ตามฉันลืมที่จะเพิ่มสิ่งหนึ่ง:
[mysqld]
innodb_buffer_pool_size=5G
innodb_log_file_size=1280M
ขนาดไฟล์บันทึกต้องเป็น 25% ของ InnoDB Buffer Pool
อัพเดท 2011-10-16 13:36 EDT
กฎ 25% ยึดตามการใช้ไฟล์บันทึกสองไฟล์อย่างเคร่งครัด แม้ว่าจะเป็นไปได้ที่จะใช้ไฟล์บันทึก Innodb หลายไฟล์ แต่โดยปกติแล้วสองไฟล์จะทำงานได้ดีที่สุด
คนอื่น ๆ ได้แสดงการใช้ 25%
อย่างไรก็ตามในความเป็นธรรมทุกคนบางคนจาก บริษัท InnoBase Oy เดิมแสดงว่าไม่ได้ใช้กฎ 25% เนื่องจากมี InnoDB Buffers Poolมากกว่า
โดยปกติแล้วกฎ 25% ไม่สามารถทำงานได้เมื่อมี RAM จำนวนมาก ในความเป็นจริง innodb_log_file_size ที่ใหญ่ที่สุดที่อนุญาตให้ใช้ไฟล์บันทึกได้เพียง 2 ไฟล์คือ 2047M เนื่องจากขนาดรวมของไฟล์บันทึกจะต้องน้อยกว่า 4G (4096M)
กรณีในจุด: หนึ่งในลูกค้าของนายจ้างของฉันมีเซิร์ฟเวอร์ฐานข้อมูลที่มี 192GB RAM ไม่มีทางที่จะมีไฟล์บันทึก 48G ฉัน simlpy ใช้ขนาดไฟล์สูงสุดสำหรับไฟล์บันทึก innodb, 2047M @ Kvisle แสดงความคิดเห็นในคำตอบของฉันเพียงแค่ให้ลิงค์ระบุว่าคุณไม่จำเป็นต้อง จำกัด ตัวเองเป็นสองไฟล์บันทึก หากคุณมีไฟล์บันทึก N ไฟล์จะไม่สามารถรวม 4G ได้ กฎ 25% ของฉันอยู่ในโลกที่สมบูรณ์แบบ (DB Server ที่มี 8GB หรือน้อยกว่า)