ตัวเลือกการบีบอัดสำหรับจัดเก็บข้อความจำนวนมากใน Postgres มีอะไรบ้าง


9

ฉันต้องการเก็บข้อความจำนวนมากใน Postgres ส่วนใหญ่บันทึกคำสั่งและผลลัพธ์ของคำสั่งที่รันเป็นเวลานานและจำเป็นต้องทราบว่ามีการตั้งค่าบางอย่างที่สามารถช่วยบีบอัดข้อมูลอย่างโปร่งใสด้วยเครื่องมือเช่น zlib หรือวิธีอื่น ๆ .

ข้อมูลเป็นข้อมูลอ่านอย่างเดียวเป็นหลักดังนั้นการเขียนไม่ใช่ปัญหา


3
จากคู่มือ " สายยาวจะถูกบีบอัดโดยระบบอัตโนมัติ " และนี่คือคำอธิบายรายละเอียดเพิ่มเติมได้ที่: postgresql.org/docs/current/static/storage-toast.html
a_horse_with_no_name

3
เราใช้อัลกอริทึมการบีบอัดอัตราส่วนที่ค่อนข้างต่ำ แต่เนื่องจากต้องมีต้นทุน CPU ต่ำ ดังนั้นจึงยังคงคุ้มค่ากับการทำ compresion รูปแบบอื่นและตั้งค่าที่EXTERNALเก็บข้อมูลในคอลัมน์
Craig Ringer

@CraigRinger เมื่อคุณพูดถึงการบีบอัดรูปแบบอื่นคุณหมายถึงการตั้งค่าตัวเลือก Postgres เพิ่มเติมหรือรวบรวมโมดูลเพิ่มเติมบางส่วนไม่ว่าจะเป็นไลบรารีที่สร้างเสร็จแล้วหรือเป็นของคุณเอง?
vfclists

คำตอบ:


3

ตามค่าเริ่มต้น Postgres จะบีบอัดทุกอย่าง TEXT โดยอัตโนมัติ มันใช้ alzorypress lzcompress ง่าย:

https://www.postgresql.org/docs/9.3/storage-toast.html

มีปลั๊กอินที่อาจจะพัฒนาไปสู่การรองรับการบีบอัด LZ4 สำหรับ TEXT:

https://github.com/zilder/pg_lz4

มีFDWที่รองรับการบีบอัดด้วย:

https://www.citusdata.com/blog/2014/04/03/columnar-store-for-analytics/

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