بهترین روشهای Postgres که هر توسعهدهنده اپلیکیشن باید بداند
در PostgreSQL پنج کار ساده وجود دارد که هر توسعهدهنده باید انجام بده: نامگذاری اتصالها، تنظیم زمانسنجیهای پرسوجو، انجام مهاجرتهای آنلاین، جداسازی نقشهای دسترسی و استفاده از UPSERT برای نوشتن ایمن. این تنظیمات فقط چند دقیقه زمان میبرند ولی باعث میشوند خطاهای طولانیمدت و قفلهای ناخواسته حذف شوند. با رعایت این نکات تیم DBA دیگر نیازی به بیدار شدن در نیمهشب نخواهد داشت.

چرا مهمه؟
تغییر اساسی در نحوهٔ اتصال برنامهها به دیتابیس ایجاد شد؛ اکنون میتوان بهسرعت منبع مشکل را شناسایی کرد، قفلهای طولانیمدت متوقف شد و عملیاتهای DDL بدون قطع سرویس انجام شد. توسعهدهندگان، مدیران پایگاه داده و تیمهای عملیات تحت تأثیر این تغییرات قرار میگیرند؛ چون ابزارهای دیباگ واضحتر، زمانسنجیهای خودکار و نقشهای محدود شده باعث کاهش خطاهای بحرانی میشود. خواننده باید این نکات را بپذیرد تا از بیدار شدن در ساعت دو صبح و هزینههای ناشی از توقف سرویس جلوگیری کند.
به درد کی میخوره؟
• توسعهدهندگان بکاند • مهندسان DevOps • مدیران پایگاه داده • تیمهای پشتیبانی فنی
تو عمل چی کار کنیم؟
با تنظیم application_name میتوانید در pg_stat_activity منبع مشکل را شناسایی کنید؛ زمانسنجیهای statement و lock باعث میشوند درخواستهای خراب سریعاً شکست بخورند؛ استفاده از CREATE INDEX CONCURRENTLY و UPSERT باعث میشود مهاجرتها و درجها بدون قفلگذاری طولانی انجام شوند؛ جداسازی نقشها خطر حذف تصادفی دادهها را کاهش میدهد. در عمل این موارد باعث میشوند سرویسها پایدارتر و زمان رفع اشکال کوتاهتر شود.
نظر BlueIT News
این تنظیمات هزینهٔ اولیهٔ کمی دارند اما بازدهی بلندمدتشان در جلوگیری از حوادث شبانهروزی چشمگیر است؛ حتماً امروز یکی از این موارد را پیاده کنید.