پستگرس برای بیشتر کارها کافیه
خلاصهٔ کاملتر
منبع با یه سؤال ساده شروع میکنه: واقعاً برای کش، صف کار، جستوجو، داکیومنت و امبدینگهای وکتور به سیستمهای جدا احتیاج داری، وقتی پستگرس رو داری؟ به گفتهٔ نویسنده، این ایده از یه gist و یه بحث داغ تو Hacker News راه افتاد. حرف اصلیش اینه که پستگرس تو هیچ کاری بهترین نیست، ولی برای بیشتر کارها بهاندازهٔ کافی خوبه.
نویسنده الگوی رایج رو اینطوری تعریف میکنه: کش میخوای، Redis اضافه میکنی؛ جستوجوی متن کامل میخوای، Elasticsearch میچسبونی؛ جاب پسزمینه میخوای، یه Redis دیگه یا Sidekiq؛ داکیومنت با اسکیمای منعطف میخوای، میری سراغ MongoDB. یهدفعه میبینی اپلیکیشن «سادهٔ» تو با هفتتا انبار دادهٔ مختلف حرف میزنه که هر کدوم دیپلوی، استراتژی بکاپ و مود خرابی خودشون رو دارن.
مشکل این تعدد سیستمها به گفتهٔ نویسنده اینه: سربار عملیاتی بیشتر، مانیتورینگ و آلارم بیشتر، تست فِیلاُوِر، وصلهٔ امنیتی، آپگرید نسخهها و پیجرهای ساعت سه صبح وقتی سیستمها با هم قطع میشن. اسم این کارو میذاره بهینهسازی زودرس؛ یعنی داری توکنهای نوآوریت رو بهجای مسئلهٔ اصلی، خرج پیچیدگی زیرساخت میکنی.
دربارهٔ اون استدلال همیشگی که «پستگرس وباسکیل نیست»، نویسنده میپرسه اصلاً چند درصد پروژهها واقعاً به وباسکیل میرسن؟ حدود ۰.۳٪. میگه شرکتهایی مثل Notion و Netflix و Instagram که میلیونها کاربر دارن به تکنولوژی «کسلکننده» تکیه میکنن، پس استارتاپ تو هم احتمالاً بدون معماری هفتدیتابیسی از پسش برمیاد. اگه یه روزی واقعاً به مرز رسیدی، همون موقع تیکههای تخصصی رو اضافه میکنی.
برای اینکه نشون بده پستگرس چقدر جا داره، به امکانات خودش اشاره میکنه: UNLOGGED tables و materialized view برای کش، SKIP LOCKED و pgmq برای صف کار، tsvector و pg_trgm برای جستوجوی متن، JSONB برای داکیومنت، pgvector برای جستوجوی وکتوری، TimescaleDB برای دادههای زمانی و PostGIS برای دادههای مکانی.
نویسنده تأکید میکنه این حرفها یهدندهبازی نیست؛ گاهی واقعاً به زیرساخت تخصصی احتیاج داری. ولی میگه سطح تصمیم باید بالا باشه: فقط بعد از اینکه پستگرس رو به مرزش رسوندی، مستند کردی چرا کافی نبود و هزینهٔ عملیاتی گزینهٔ جایگزین رو قبول کردی. تا اون موقع، هر سیستمی که اضافه میکنی یه شرطبندیه که فایدهش بیشتر از سالها نگهداری و دیباگ باشه.
نکات کلیدی:
- ادعای اصلی: پستگرس برای بیشتر پروژهها بهاندازهٔ کافی خوبه و لازم نیست سراغ دیتابیس جدا بری
- هر سیستم اضافه یعنی سربار عملیاتی، مانیتورینگ، بکاپ و مود خرابی بیشتر
- کش، صف، جستوجو، داکیومنت و وکتور همه با امکانات خود پستگرس قابل انجامه
- فقط ۰.۳٪ پروژهها واقعاً به وباسکیل میرسن؛ بقیه گرفتار بهینهسازی زودرسان
- قانون کلی: اول پستگرس رو تا مرزش فشار بده، بعد اگه لازم شد ابزار تخصصی اضافه کن




