Score:1

ลบย่อหน้าที่ไม่ได้ใช้หลายล้านย่อหน้าและข้อมูลในนั้นหรือไม่

ธง in

เรามีไซต์ที่หลังจากผ่านไปไม่กี่ปี ได้สร้างบันทึก 10 ล้านรายการในตารางย่อหน้า_รายการ นี่เป็นผลมาจากการย้ายข้อมูลจำนวนมาก (ซึ่งเกี่ยวข้องกับย่อหน้า) และตอนนี้มีเด็กกำพร้าจำนวนมาก (อาจถึง 90% ของจำนวนนั้น)

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

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

หากฉันล้างข้อมูลและปล่อยให้ลบ 200,000 รายการ ตัวอย่างเช่น การเรียกใช้ OPTIMIZE sql บนตาราง paragraphs_item ดูเหมือนจะสนับสนุนทฤษฎีนี้ การแก้ไขครั้งแรกใช้เวลา 8 วินาทีในการโหลดย่อหน้า หลังจากนั้นก็เกือบจะทันที ดังนั้น การลบย่อหน้าที่ไม่ได้ใช้ทั้งหมดคือสิ่งที่ผมคิดว่าเราควรจะทำ ฉันทราบดีว่า OPTIMIZE บน InnoDB ส่งผลให้เกิดการสร้างดัชนีใหม่ แต่ในกรณีที่คุณอัปเกรดเวอร์ชันของฐานข้อมูล ข้อมูลนี้มีขนาดใหญ่มากจนฉันคิดว่าไม่สามารถสร้างใหม่ได้ตามเกณฑ์ที่กำหนด

มีวิธีที่เร็วกว่าในการค้นหาและลบย่อหน้าที่ถูกละเลยนอกเหนือจากการล้างข้อมูลหรือไม่

4uk4 avatar
cn flag
เมื่อทราบข้อมูลเฉพาะของไซต์แล้ว คุณจะสามารถเขียนบริการกำจัดขยะแบบกำหนดเองได้เร็วขึ้น ลบหรือลดความซับซ้อนของการตรวจสอบการใช้งาน แล้วจึงเพิ่มขนาดแบทช์ ค่าเริ่มต้นที่ 50 นั้นต่ำเกินไปในกรณีของคุณ และในอนาคตให้เพิ่มบริการล้างข้อมูลเป็นคิวหลังจากการย้ายข้อมูล

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา