วิธีเพิ่มขีด จำกัด ของข้อมูลบัฟเฟอร์?


16

ภายในอูบุนตูฉันได้สร้างคอลเลกชัน MongoDB Db ที่มี 1 ล้านเรคคอร์ดและเมื่อพยายามเรียกใช้คำสั่งการเรียงลำดับฉันจะได้รับข้อผิดพลาดดังต่อไปนี้:

 "$err" : "Runner error: Overflow sort stage buffered data usage of 33555002 bytes exceeds internal limit of 33554432 bytes",
 "code" : 17144

ได้โปรดทุกคนอธิบายวิธีเพิ่มขีด จำกัด ภายในเพื่อให้ฉันสามารถดำเนินการนี้และคำสั่งขนาดใหญ่อื่น ๆ กับข้อมูลได้หรือไม่


ฉันสงสัยว่าคุณสามารถ ปัญหาอาจเกิดจากข้อความของคุณ: อธิบายว่าคุณใช้ INDEX หรือไม่ ถ้าไม่คุณต้องเพิ่ม INDEX ลงในตารางของคุณ
Rinzwind

สวัสดี Rinzwind ฉันกำลังพยายามเปรียบเทียบประสิทธิภาพดังนั้นฉันจึงต้องการเรียกใช้ข้อมูลหลายประเภทโดยใช้ noindex ดัชนีหลักและดัชนีรอง คุณแนะนำว่ามันเป็นไปไม่ได้ที่จะเรียกใช้งานมาตราส่วนนี้โดยไม่มีดัชนีหรือไม่?
Jon295087

อา. ฉันมักจะตรวจสอบประสิทธิภาพโดยใช้อธิบาย (ทันทีที่อธิบายไม่ให้ฉันบันทึกต่ำนับประสิทธิภาพที่ไม่ดี) คุณอาจจำเป็นต้อง จำกัด ระเบียนของคุณหากคุณต้องการทำเช่นนี้
Rinzwind

ฉันพบว่า MongoDB จะประมวลผลเอกสารประมาณ 25,000 ชุดในชุดข้อมูลนี้ แต่ตรงข้ามกับสิ่งที่ยิ่งใหญ่กว่านี้ ... ฉันคิดว่ามันเป็นข้อ จำกัด ของฐานข้อมูลหรือไม่ ขอบคุณสำหรับความคิดเห็นของคุณ
Jon295087

คำตอบ:


23

สิ่งนี้สามารถเกิดขึ้นได้เนื่องจากข้อผิดพลาดเช่นSERVER-13611 (เพื่อให้แน่ใจว่าคุณอยู่ในเวอร์ชั่นล่าสุด) หรือเนื่องจากคุณพยายามเรียงลำดับดัชนีแบบเบาบางใน 2.6แต่บ่อยครั้งขึ้นเพราะคุณพยายามเรียงลำดับเช่นกัน บันทึกจำนวนมากในหน่วยความจำโดยไม่มีดัชนี

ขีด จำกัด เฉพาะที่คุณกำลังกดปุ่มนั้นเป็นไปตามเจตนาและมีการบันทึกไว้ที่นี่ - ไม่สามารถเปลี่ยนแปลงได้ดังนั้นคุณต้องลดชุดผลลัพธ์หรือใช้ดัชนี ฯลฯ เพื่อเรียงลำดับ

อัปเดต (พฤศจิกายน 2014):การเปิดตัว 2.8 ที่กำลังมาถึง (2.8.0-rc0 ณ การเขียนนี้) จะอนุญาตให้ปรับการตั้งค่านี้ได้ดังนี้:

db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: <limit in bytes>})

ค่าเริ่มต้นคือ 32MiB (33554432 ไบต์) และควรปรับด้วยความระมัดระวัง - หน่วยความจำขนาดใหญ่อาจทำให้ฐานข้อมูลของคุณหยุดทำงาน (ซึ่งเป็นเหตุผลว่าทำไมจึงมีข้อ จำกัด )


"errmsg": "ไม่พบตัวเลือกในการตั้งค่าใช้ความช่วยเหลือ: จริงเพื่อดูตัวเลือก"
Mohammad Efazati

1
อาจเป็นไปได้ว่าคุณกำลังใช้เวอร์ชันที่แตกต่างจากคำตอบนี้มากซึ่งเขียนขึ้นเมื่อไม่นานมานี้
อดัมซี

2

ฉันพบปัญหาเมื่อเรียงลำดับและสร้างเลข 200K + รายการ วิธีที่ง่ายที่สุดน่าจะเป็นการเพิ่มดัชนี (สำหรับแอตทริบิวต์ที่คุณเรียงลำดับ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.