انتشار PostgreSQL 12 DBMS

پس از یک سال توسعه منتشر شده شاخه پایدار جدید از DBMS PostgreSQL 12. به روز رسانی برای شاخه جدید آشکار خواهد شد به مدت پنج سال تا نوامبر 2024.

اصلی نوآوری ها:

  • پشتیبانی اضافه شده برای "ستون های تولید شده"، که مقدار آن بر اساس عبارتی محاسبه می شود که مقادیر ستون های دیگر را در همان جدول (مشابه نماها، اما برای ستون های جداگانه) پوشش می دهد. ستون های تولید شده می توانند دو نوع باشند - ذخیره شده و مجازی. در حالت اول، مقدار در زمان اضافه یا تغییر داده ها محاسبه می شود و در حالت دوم، مقدار بر روی هر خوانده شده بر اساس وضعیت فعلی ستون های دیگر محاسبه می شود. در حال حاضر، PostgreSQL فقط از ستون های تولید شده ذخیره شده پشتیبانی می کند.
  • امکان پرس و جو داده ها از اسناد JSON با استفاده از اضافه شده است عبارات مسیر، یادآور XPath و در استاندارد SQL/JSON تعریف شده است. مکانیسم های نمایه سازی موجود برای بهبود کارایی پردازش چنین عباراتی برای اسناد ذخیره شده در قالب JSONB استفاده می شود.
  • به طور پیش فرض فعال، استفاده از یک کامپایلر JIT (Just-in-Time) بر اساس پیشرفت های LLVM برای سرعت بخشیدن به اجرای برخی عبارات در طول پردازش پرس و جو SQL است. به عنوان مثال، JIT برای سرعت بخشیدن به اجرای عبارات در بلوک های WHERE، لیست های هدف، عبارات انبوه و برخی عملیات داخلی استفاده می شود.
  • عملکرد نمایه سازی به طور قابل توجهی بهبود یافته است. شاخص‌های B-tree برای کار در محیط‌هایی که شاخص‌ها به طور مکرر تغییر می‌کنند بهینه شده‌اند - تست‌های TPC-C افزایش کلی عملکرد و کاهش متوسط ​​مصرف فضای دیسک را تا 40 درصد نشان می‌دهند. کاهش سربار هنگام ایجاد گزارش پیش‌نویس (WAL) برای انواع شاخص GiST، GIN و SP-GiST. برای GiST، امکان ایجاد نمایه های بسته بندی (از طریق عبارت INCLUDE) که شامل ستون های اضافی است اضافه شده است. در عملیات آمار را ایجاد کنید برای ایجاد طرح‌های پرس و جو بهینه‌تر در هنگام استفاده از ستون‌های توزیع نابرابر، از آمارهای بیشترین ارزش رایج (MCV) پشتیبانی می‌کند.
  • اجرای پارتیشن بندی برای پرس و جوهایی بهینه شده است که جداول را با هزاران پارتیشن پوشش می دهند، اما محدود به انتخاب زیرمجموعه محدودی از داده ها هستند. عملکرد افزودن داده ها به جداول پارتیشن بندی شده با استفاده از عملیات INSERT و COPY افزایش یافته است و همچنین امکان افزودن بخش های جدید از طریق "ALTER TABLE ATTACH PARTITION" بدون مسدود کردن اجرای پرس و جو وجود دارد.
  • اضافه شدن پشتیبانی برای گسترش خودکار درون خطی عبارات جدول تعمیم یافته (عبارت جدول رایج، CTE) که امکان استفاده از مجموعه نتایج نامگذاری شده موقت را که با استفاده از عبارت WITH مشخص شده اند را می دهد. استقرار درون خطی می تواند عملکرد اکثر پرس و جوها را بهبود بخشد، اما در حال حاضر فقط برای CTE های غیر بازگشتی استفاده می شود.
  • پشتیبانی اضافه شد غیرقطعی ویژگی های محلی "Collation"، که به شما امکان می دهد قوانین مرتب سازی و روش های تطبیق را با در نظر گرفتن معنای کاراکترها تنظیم کنید (به عنوان مثال، هنگام مرتب سازی مقادیر دیجیتال، وجود یک منهای و یک نقطه در مقابل یک عدد و انواع مختلف املا در نظر گرفته می شود و هنگام مقایسه، مورد شخصیت ها و وجود علامت لهجه در نظر گرفته نمی شود).
  • پشتیبانی برای احراز هویت چند عاملی کلاینت اضافه شده است، که در آن در pg_hba.conf می توانید احراز هویت گواهی SSL (clientcert=verify-full) را با یک روش احراز هویت اضافی مانند scram-sha-256 برای احراز هویت ترکیب کنید.
  • اضافه شدن پشتیبانی برای رمزگذاری کانال ارتباطی هنگام احراز هویت از طریق GSSAPIA، هم در سمت مشتری و هم در سمت سرور؛
  • اگر PostgreSQL با OpenLDAP ساخته شده باشد، پشتیبانی اضافه شده برای تعیین سرورهای LDAP بر اساس رکوردهای "DNS SRV".
  • عملیات اضافه شده "REINDEX به طور همزمان» برای بازسازی نمایه ها بدون مسدود کردن عملیات نوشتن در فهرست؛
  • دستور اضافه شد pg_checkssums، که به شما امکان می دهد بررسی جمع بندی صفحات داده را برای یک پایگاه داده موجود فعال یا غیرفعال کنید (قبلاً این عملیات فقط در هنگام اولیه سازی پایگاه داده پشتیبانی می شد).
  • خروجی نشانگر پیشرفت برای عملیات CREATE INDEX، REINDEX، CLUSTER، VACUUM FULL و pg_checkssums ارائه شده است.
  • دستور اضافه شده "ایجاد روش دسترسی» برای اتصال هندلرها برای روش های جدید ذخیره سازی جدول بهینه شده برای کارهای مختلف. در حال حاضر تنها روش دسترسی به جدول داخلی "heap" است.
  • فایل پیکربندی recovery.conf با postgresql.conf ادغام شده است. اکنون به عنوان شاخص های انتقال به وضعیت بهبودی پس از یک شکست باید از فایل های recovery.signal و standby.signal استفاده کنید.

منبع: opennet.ru

اضافه کردن نظر