3 คะแนน โดย GN⁺ 2023-08-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • มีการพูดถึงเทคนิคการเพิ่มพื้นที่จัดเก็บในฐานข้อมูลโดยไม่ต้องลบดัชนีหรือข้อมูล
  • มีการระบุดัชนีที่ไม่ได้ใช้งานและลบออกเพื่อคืนพื้นที่จัดเก็บ
  • มีการสร้างตารางและดัชนีใหม่เพื่อจัดการพื้นที่ส่วนเกินที่ไม่จำเป็น
  • PostgreSQL 13 ได้เพิ่มฟีเจอร์ B-Tree index deduplication ซึ่งช่วยลดขนาดของดัชนีที่มีค่าซ้ำได้
  • สามารถใช้ส่วนขยาย pg_repack เพื่อสร้างตารางใหม่และลด bloat ได้โดยไม่มี downtime
  • ใน PostgreSQL ค่า NULL ก็ถูกทำดัชนีด้วย ทำให้ใช้พื้นที่โดยไม่จำเป็น
  • ใช้ partial index เพื่อลดขนาดดัชนีโดยยกเว้นค่า NULL
  • มีการให้ตัวอย่างคิวรีและคำสั่งสำหรับทำงานเหล่านี้
  • เทคนิคที่กล่าวถึงสามารถช่วยเพิ่มประสิทธิภาพการใช้พื้นที่จัดเก็บและปรับปรุงประสิทธิภาพของฐานข้อมูล
  • ในแอปพลิเคชันขนาดใหญ่ที่สร้างด้วย Django มีการใช้ partial index เพื่อเพิ่มประสิทธิภาพด้านพื้นที่จัดเก็บและสมรรถนะ
  • partial index สามารถยกเว้นได้ไม่เพียงค่า null แต่ยังรวมถึงค่าที่ถูกคิวรีบ่อยหรือแทบไม่ถูกคิวรีเลย
  • การเปลี่ยนดัชนีบางตัวให้เป็น partial index ที่ยกเว้นค่า null สามารถประหยัดพื้นที่จัดเก็บได้ราว 1.3GB
  • การลบดัชนีออกจาก replication สามารถคืนพื้นที่จัดเก็บได้มากขึ้น
  • มีการแนะนำเคล็ดลับในการป้องกันการสร้างดัชนีโดยปริยายสำหรับ foreign key ใน Django และการย้าย full index เดิมไปเป็น partial index โดยไม่มี downtime หรือผลกระทบต่อประสิทธิภาพ
  • มีการเน้นย้ำความสำคัญของการปรับนิยามดัชนีให้เหมาะสมเพื่อเพิ่มทั้งประสิทธิภาพการใช้พื้นที่และสมรรถนะให้สูงสุด

1 ความคิดเห็น

 
GN⁺ 2023-08-30
ความคิดเห็นจาก Hacker News
  • การทำให้อินเด็กซ์มีขนาดเล็กลงยังมีข้อดี แม้ว่าจะมีพื้นที่จัดเก็บเพียงพอก็ตาม
  • สำหรับผู้ที่มีฮาร์ดแวร์ของตนเอง การจัดสรรพื้นที่จัดเก็บเพิ่มเติมเป็นตัวเลือกที่ใช้ได้ผล
  • การ deduplication ของ B-tree ใน PostgreSQL 13 อาจช่วยกับค่า NULL ในอินเด็กซ์ foreign key ได้
  • บทความนี้มอบเทคนิคและข้อสังเกตที่มีประโยชน์สำหรับการเพิ่มประสิทธิภาพการใช้พื้นที่ของ PostgreSQL
  • สำหรับบริษัทระยะเริ่มต้นหรือช่วงเริ่มต้น โดยทั่วไปการเพิ่มพื้นที่ดิสก์มักดีกว่าการปรับขนาดให้เหมาะสม
  • การจัดเรียงลำดับคอลัมน์ของตารางใหม่และการใช้สคริปต์สามารถช่วยประหยัดพื้นที่จัดเก็บได้อย่างมาก
  • การกระจายตัวของข้อมูลแบบไม่สมมาตรอาจทำให้อินเด็กซ์บวมและต้องการการ vacuum ที่มีประสิทธิภาพมากขึ้น
  • บทความนี้ได้รับเสียงตอบรับเชิงบวกบน Hacker News
  • ขอแนะนำ pganalyze.com เพื่อค้นหาอินเด็กซ์ที่ไม่ได้ใช้งานและโอกาสในการปรับแต่งประสิทธิภาพ
  • รูปแบบอินเด็กซ์ PostgreSQL ที่ไม่ค่อยพบและอินเด็กซ์สำหรับค่า NULL ยังไม่เป็นที่รู้จักอย่างแพร่หลาย
  • การเพิ่มปริมาณข้อมูลอาจส่งผลอย่างมากต่อเวลาในการ insert และประสิทธิภาพ
  • หลักการดังกล่าวยังคงใช้ได้ แม้ว่าคอลัมน์นั้นจะมีสัดส่วนของค่าที่พบบ่อยสูงก็ตาม