#talk #postgres
Hands On PostgreSQL 18
هفتهی پیش نسخهی جدید پستگرس منتشر شده و تغییرات زیادی داشته. ارائهی پایین خیلی خوب این تغییرات رو توضیح میده و با نسخههای قبلی مقایسه میکنه و بنچمارک میگیره.
دوتا از چیزایی که به نظرم جالب اومد این دوتاست:
مورد اول Async I/O: از این نسخه به بعد شما میتونید IO های دیتابیس رو به صورت Async انجام بدید. به صورت پیشفرض پستگرس سه تا پراسس دیگه برای هندل کردن IO میاره بالا که اینا IO رو انجام میدن؛ این روش کوئریها رو بهتر میکنه اما بهترین نیست. اگر روی لینوکس باشید و نسخهی کرنل +6.5 باشه میتونید از سیستمکالهای io_uring استفاده کنید که اسکنها رو خیلی خیلی سریعتر میکنه. توی ارائه تنظیم کردنش و بنچمارکهاش رو نشون میده.
مورد دوم Btree skip scan هست. تا الان اگر شما روی سه تا فیلد ایندکس میذاشتید(مثلا به ترتیب روی a و b و c)، اگر کوئری میزدید که b توش بود ولی a نبود از این ایندکس استفاده نمیشد. در واقع همیشه یه prefix ایی از فیلدهایی که ایندکس کردید باید توی کوئریتون میبود تا این ایندکس استفاده بشه. اما توی نسخهی 18 این قابلیت اضافه شده که این ایندکسها توی کوئریهایی که prefix ندارن هم استفاده بشه. مثلا توی مثال ما اگر فقط روی b کوئری بزنید بازم از این ایندکس استفاده میشه. این قابلیت مخصوصا وقتی cardinality ستونهای اول کمتره باعث میشه به ایندکسهای کمتری نیاز داشته باشید.
YouTube: Hands On PostgreSQL 18
✴️ @software_inside - مهندسینرمافزار
Post #23
732

- 👍 3
- 🔥 3