کاهش عملکرد PostgreSQL؛ تقصیر ویژگی Inline JSONB؟
PostgreSQL قابلیت jsonb رو به خاطر انعطافپذیریش محبوب کرده، ولی یه پشتپردهی تاریک داره. وقتی دادههای jsonb در ردیفهای کمتر از ۲ کیلوبایت بهصورت inline ذخیره بشن، حتی با وجود ایندکسها هم عملکرد پایگاه داده افت شدیدی پیدا میکنه. مشکل از نحوهی ذخیرهسازی صفحات ۸ کیلوبایتی PostgreSQL و فشردهسازی ردیفها در کنار هم نشأت میگیره.
چرا مهمه؟
آگاهی از نحوهی ذخیرهسازی inline JSONB مستقیماً روی سرعت و هزینهی اجرای اپلیکیشنها تأثیر میذاره. توسعهدهندگان و دیتابیسادمینها ممکنه ماهها با کوئریهای کند دست و پنجه نرم کنن و علت اصلی رو پیدا نکنن. درک این موضوع به مهندسان کمک میکنه از همون ابتدا معماری دادهی بهینهتری طراحی کنن و از رفع مشکلات وقتگیر در مراحل بعدی جلوگیری کنن.
به درد کی میخوره؟
مهندسین بکاند و فولاستک دیتابیس ادمینها و مهندسان دیتابیس توسعهدهندگانی که از PostgreSQL استفاده میکنن مدیران فنی پروژههایی با حجم دادهی بالا
تو عمل چی کار کنیم؟
اگه با پایگاه دادهی PostgreSQL کار میکنید، بد نیست یه بررسی دقیق روی نحوهی استفاده از jsonb تو جداول پرحجم داشته باشید. شاید لازم باشه بعضی فیلدهای jsonb رو به حالت JSON سادهتر تغییر بدید یا ساختار جدول رو بازطراحی کنید. این کار میتونه سرعت کوئریها رو چندبرابر کنه و هزینهی سرور رو هم کم کنه.
نظر Blue IT News
توسعهدهندهها عاشق انعطاف jsonb هستن ولی باید بدونن هر انعطافی یه بهایی داره. قبل از اینکه همه چیز رو تو یه ستون jsonb بریزید، یه فکری به حال عملکرد در مقیاس بزرگ بکنید.