เราพบปัญหาในการสืบค้นตารางที่มีประมาณ 50 ล้านแถวและมีขนาดดัชนี 4 GB (ขนาดตารางประมาณ 6 GB) ส่งผลให้เซิร์ฟเวอร์ฐานข้อมูลเปลี่ยนหน่วยความจำและชะลอความเร็วลงอย่างมาก ฉันค่อนข้างแน่ใจว่าสิ่งนี้เกี่ยวข้องกับขนาดของเทมเพลตที่เกินขนาดและมันถูกสลับเป็นดิสก์
ถ้าฉันอัพเกรดเซิร์ฟเวอร์ฐานข้อมูลของฉันจาก 32 GB of RAM เป็น 64 GB RAM ฉันสงสัยว่าฐานข้อมูล MySQL จะสามารถใช้ประโยชน์จากหน่วยความจำเพิ่มเติมนี้ได้อย่างเต็มที่และไม่สลับหรือไม่ ฉันได้ลองใช้ตัวแปรสองสามอย่าง (เช่น KEY_BUFFER_SIZE ฯลฯ ... ) และดูเหมือนว่าพวกเขาสนับสนุนการตั้งค่ามากกว่า 64 GB อย่างไรก็ตามเอกสาร MySQL กล่าวว่า tmp_table_size สูงสุดที่ 4 GB
ดังนั้นการอัพเกรดหน่วยความจำจะคุ้มหรือไม่ ปัญหา "การสืบค้นตารางขนาดใหญ่" จะได้รับประโยชน์จากสิ่งนี้หรือไม่และจะไม่ช่วยเนื่องจากขีด จำกัด 4 GB หรือไม่ ฉันรู้ว่าอาจมีโซลูชันอื่น ๆ เช่นการปรับโครงสร้างตารางเพื่อแบ่งพาร์ติชันด้วยวิธีที่แตกต่างกัน ฯลฯ ... แต่ไม่มีการเปลี่ยนแปลงอะไรเกี่ยวกับตารางหน่วยความจำเพิ่มเติมจะช่วยได้หรือไม่
โดยทั่วไปแล้วมีตัวแปรอื่น ๆ ที่เกี่ยวข้องกับหน่วยความจำที่ MySQL จะไม่สามารถใช้ประโยชน์จากการย้ายจาก 32 ถึง 64 GB RAM?
เราใช้ลินุกซ์ 64 บิต (Ubuntu) เป็นเซิร์ฟเวอร์ฐานข้อมูลของเรา
ขอบคุณเลน