جمعه خوبی برای همه داشته باشید! زمان کمتر و کمتری تا شروع دوره باقی می ماند
در مرحله توسعه
در PostgreSQL 10، ما شاهد تولد "پارتیشن بندی اعلامی" بودیم، یک ویژگی طراحی شده برای حل بسیاری از مشکلات غیرقابل حل با استفاده از روش وراثت قدیمی. این منجر به ابزار بسیار قدرتمندتری شد که به ما اجازه داد داده ها را به صورت افقی تقسیم کنیم!
مقایسه ویژگی ها
PostgreSQL 11 مجموعه قابل توجهی از ویژگی های جدید را معرفی می کند که به بهبود عملکرد کمک می کند و جداول پارتیشن بندی شده را برای برنامه ها شفاف تر می کند.
1. استفاده از استثناهای محدود کننده
2. فقط گره ها را اضافه می کند
3. فقط برای یک جدول پارتیشن بندی شده که به جدول غیرپارتیشن بندی شده ارجاع می دهد
4. ایندکس ها باید شامل تمام ستون های کلیدی پارتیشن باشند
5. محدودیت های بخش در هر دو طرف باید مطابقت داشته باشد
کارایی
اینجا هم خبرهای خوبی داریم! روش جدید اضافه شد WHERE
. الگوریتم قبلی، به نوبه خود، هر بخش را بررسی کرد تا تعیین کند که آیا می تواند شرایط را برآورده کند یا خیر WHERE
. این منجر به افزایش اضافی در زمان برنامه ریزی با افزایش تعداد بخش ها شد.
در 9.6، با پارتیشن بندی از طریق وراثت، مسیریابی تاپل ها به پارتیشن ها معمولاً با نوشتن یک تابع ماشه انجام می شد که حاوی یک سری دستورات IF برای درج تاپل در پارتیشن صحیح بود. اجرای این توابع ممکن است بسیار کند باشد. با اضافه شدن پارتیشن بندی اعلامی در نسخه 10، این کار بسیار سریعتر انجام می شود.
با استفاده از یک جدول پارتیشن بندی شده با 100 پارتیشن، می توانیم عملکرد بارگذاری 10 میلیون ردیف را در جدولی با 1 ستون BIGINT و 5 ستون INT ارزیابی کنیم.
عملکرد جستجوی این جدول برای یافتن یک رکورد نمایه شده و اجرای DML برای دستکاری یک رکورد (فقط با استفاده از 1 پردازنده):
در اینجا می بینیم که عملکرد هر عملیات از زمان PG 9.6 به طور قابل توجهی افزایش یافته است. درخواست ها SELECT
بسیار بهتر به نظر می رسند، به خصوص آنهایی که می توانند چندین پارتیشن را در طول برنامه ریزی پرس و جو حذف کنند. این بدان معناست که برنامهریز میتواند بسیاری از کارهایی را که قبلاً باید انجام میداد، رها کند. به عنوان مثال، مسیرها دیگر برای بخش های غیر ضروری ساخته نمی شوند.
نتیجه
پارتیشن بندی جدول در حال تبدیل شدن به یک ویژگی بسیار قدرتمند در PostgreSQL است. این به شما امکان میدهد تا دادهها را بهسرعت بهصورت آنلاین نمایش دهید و آنها را آفلاین کنید، بدون اینکه منتظر بمانید تا عملیات DML آهسته و عظیم تکمیل شود.. این همچنین به این معنی است که دادههای مرتبط را میتوان با هم ذخیره کرد، به این معنی که دادههای مورد نیاز میتوانند بسیار کارآمدتر دسترسی داشته باشند. بهبودهای انجام شده در این نسخه بدون توسعه دهندگان، بازبینان و متولیان که به طور خستگی ناپذیر روی همه این ویژگی ها کار می کردند امکان پذیر نبود.
با تشکر از همه آنها! PostgreSQL 11 فوق العاده به نظر می رسد!
در اینجا یک مقاله کوتاه اما بسیار جالب است. نظرات خود را به اشتراک بگذارید و فراموش نکنید که در آن ثبت نام کنید
منبع: www.habr.com