เรื่อง "ไดนามิก"ที่รูปแบบที่ไม่บีบอัด Barracuda เท่านั้นน้อยมากมีการเปลี่ยนแปลงจากขนาดกะทัดรัดส่วนใหญ่ในวิธี blobs (และใด ๆ เขตข้อมูลแบบไดนามิกมาก) จะถูกเก็บไว้ ฉันไม่เคยมีปัญหาใด ๆ กับคอมแพคกับไดนามิกดังนั้นฉันสามารถแนะนำไดนามิกของ Barracuda ได้อย่างปลอดภัย โปรดจำไว้ว่าBarracuda ยังสนับสนุนซ้ำซ้อนเก่าและรูปแบบแถวที่มีขนาดกะทัดรัด
บทความที่คุณกำลังพูดถึงอาจจะเก่าเกินไป (5.1)และในฐานะ Peter Z. CEO ของ Percona กล่าวถึงความคิดเห็นที่อาจทำให้เข้าใจผิดเล็กน้อย นั่นไม่ได้หมายความว่าการบีบอัดจะไม่สามารถสร้างผลกำไรมหาศาลขึ้นอยู่กับปริมาณงาน อย่างไรก็ตามฉันขอแนะนำให้คุณลองใช้กับรุ่น> = 5.6 เนื่องจากทั้ง Facebook และ Oracle ได้ทำการปรับปรุงมากมายเกี่ยวกับเรื่องนี้
ในฐานะที่เป็นข้อมูลอ้างอิงล่าสุดฉันขอแนะนำให้คุณ:
โดยเฉพาะอย่างยิ่งฉันชอบสื่อของ Facebook เนื่องจากเป็นบุคคลที่สาม (ไม่จำเป็นต้องมีวาระ) และพวกเขามีการติดตั้ง MySQL ที่ใหญ่ที่สุดในโลก อย่างที่คุณเห็นพวกเขาประสบความสำเร็จอย่างมากในการรวมเทคโนโลยี SSD เข้ากับการบีบอัด
มันจะเป็นประโยชน์กับคุณ? ที่จะขึ้นอยู่กับภาระงานของคุณตั้งและการตั้งค่าการทำงาน (IOPS, หน่วยความจำ) การบีบอัดอาจส่งผลกระทบในทางลบในบางกรณีทั้งนี้ขึ้นอยู่กับว่าคุณมีข้อ จำกัด ของ IO หรือไม่โดยการเพิ่ม CPU เพิ่มเติมข้อกำหนดหน่วยความจำ (ทั้งหน้าที่ถูกบีบอัดและไม่มีการบีบอัดหน้าจะถูกเก็บไว้ในบัฟเฟอร์บัฟเฟอร์ ความล่าช้า นอกจากนี้ยังขึ้นอยู่กับประเภทของข้อมูล: การบีบอัดสามารถช่วยได้มากกับ blobs ข้อความขนาดใหญ่ แต่อาจไม่มีประโยชน์กับข้อมูลที่ถูกบีบอัดแล้ว
จากประสบการณ์ของฉันในทางปฏิบัติมีคนที่การบีบอัดเป็นจอกศักดิ์สิทธิ์ของการแสดงและมีความสุขมากกับมัน แต่ในกรณีอื่น ๆ เราต้องเปลี่ยนกลับเป็นข้อมูลที่ไม่มีการบีบอัดเนื่องจากไม่ได้รับการบีบอัด ในขณะที่ภาระงานการเขียนที่หนักมากอาจดูเหมือนเป็นสภาพแวดล้อมที่ไม่ดีสำหรับการบีบอัดหากในกรณีของคุณโดยเฉพาะคุณไม่ได้ทำงานกับ cpu-bound และ memory-bound แต่ iops-bound อาจไม่มีประโยชน์อะไรเลย
โดยทั่วไปแล้วเป็นเรื่องยากมากที่จะทำนายผลลัพธ์โดยปกติคุณควรตั้งค่าสภาพแวดล้อมการทดสอบเพื่อการเปรียบเทียบและหาสาเหตุที่ทำให้คุณได้ผลลัพธ์ที่ดีขึ้นหรือแย่ลง (และวิธีที่คุณสามารถเล่นกับบล็อกขนาดต่าง ๆ เป็นต้น) Barracuda ปลอดภัยอย่างสมบูรณ์ การบีบอัดอาจจะใช่หรือไม่ใช่สำหรับคุณ และคุณสามารถทดสอบด้วยวิธีการบีบอัดอื่น ๆ เช่นการบีบอัดฝั่งไคลเอนต์ของ blobs (ตัวอย่างเช่นหากคุณสิ้นสุดการทำงานของ CPU-bound) หรือเอ็นจิ้นบุคคลที่สามอื่น ๆเช่น RocksDB และ TokuDBซึ่งการบีบอัดสำคัญมาก ประสิทธิภาพการทำงานสำหรับชุดข้อมูลขนาดใหญ่กว่า InnoDB สามารถจัดการได้
โดยสรุป: เหตุผลหลักในการใช้ Barracuda คือการจัดการ BLOB innodb_large_prefix
ความเข้ากันได้ (ดัชนีขนาดใหญ่) และการบีบอัด ไดนามิกบน MySQL 8.0 ตอนนี้เป็นรูปแบบไฟล์เริ่มต้น