ماجرای یه SELECT ساده که SQL SERVER رو به زانو در آورد.
چند وقت پیش تو یه پروژه ای بودم که یکی از دولوپرهای عزیز یه گزارش جدید نوشته بود که شامل یه Query بود. روی سطح کد، همهچیز عالی به نظر میومد. اما وقتی گزارش اجرا میشد، سیستم یه دفعه شروع می کرد به کند شدن و سرور، CPU رو تا 100٪ میبرد بالا.
رفتم بررسی کنم چی شده. دیدم Queryش این شکلی بود:
SELECT *
FROM BigTable
WHERE FunctionOnColumn(SomeColumn) = 'Value';
کاری که این Query انجام میداد، این بود که یه فانکشن روی ستون اجرا میکرد. نتیجه؟ بهجای استفاده از ایندکسهای موجود، SQL Server مجبور میشد کل جدول رو اسکن کنه (Full Table Scan).
اول، با دولوپر صحبت کردم و براش توضیح دادم که استفاده از فانکشن روی ستونها (بهخصوص توی WHERE یا JOIN) باعث میشه SQL Server ایندکسها رو نادیده بگیره. بعد، بهش پیشنهاد دادم که بهجای فانکشن، مقدار محاسبهشده رو از قبل توی یه ستون جدید ذخیره کنه یا از Persisted Computed Column استفاده کنه.
کوئری اصلاح شدهش این شد:
SELECT *
FROM BigTable
WHERE CalculatedSomeColumn = 'Value';
سرعت اجرای Query از چند دقیقه به کمتر از یک ثانیه رسید. همین تغییر ساده کلی بار روی دیتابیس رو کم کرد. نتیجه اینکه من راضی ، دولوپر راضی ، SQL SERVER هم راضی.
<Mostafa Hassanzadeh/>
➖➖➖➖➖➖➖➖
https://t.me/addlist/KpzXaiSpKENkMGM0
چند وقت پیش تو یه پروژه ای بودم که یکی از دولوپرهای عزیز یه گزارش جدید نوشته بود که شامل یه Query بود. روی سطح کد، همهچیز عالی به نظر میومد. اما وقتی گزارش اجرا میشد، سیستم یه دفعه شروع می کرد به کند شدن و سرور، CPU رو تا 100٪ میبرد بالا.
رفتم بررسی کنم چی شده. دیدم Queryش این شکلی بود:
SELECT *
FROM BigTable
WHERE FunctionOnColumn(SomeColumn) = 'Value';
کاری که این Query انجام میداد، این بود که یه فانکشن روی ستون اجرا میکرد. نتیجه؟ بهجای استفاده از ایندکسهای موجود، SQL Server مجبور میشد کل جدول رو اسکن کنه (Full Table Scan).
اول، با دولوپر صحبت کردم و براش توضیح دادم که استفاده از فانکشن روی ستونها (بهخصوص توی WHERE یا JOIN) باعث میشه SQL Server ایندکسها رو نادیده بگیره. بعد، بهش پیشنهاد دادم که بهجای فانکشن، مقدار محاسبهشده رو از قبل توی یه ستون جدید ذخیره کنه یا از Persisted Computed Column استفاده کنه.
کوئری اصلاح شدهش این شد:
SELECT *
FROM BigTable
WHERE CalculatedSomeColumn = 'Value';
سرعت اجرای Query از چند دقیقه به کمتر از یک ثانیه رسید. همین تغییر ساده کلی بار روی دیتابیس رو کم کرد. نتیجه اینکه من راضی ، دولوپر راضی ، SQL SERVER هم راضی.
<Mostafa Hassanzadeh/>
➖➖➖➖➖➖➖➖
https://t.me/addlist/KpzXaiSpKENkMGM0
👍3🔥2🍓2👏1
📢 اگر تلگرام پرمیوم دارید، کانال ما رو Boost کنید ! 🚀
با Boost کردن کانال، به رشد و دیده شدن ما بیشتر کمک کنید💙
https://t.me/boost/Database_Academy
با Boost کردن کانال، به رشد و دیده شدن ما بیشتر کمک کنید💙
https://t.me/boost/Database_Academy
❤1👻1💘1
🔵 عنوان مقاله
pg_activity 3.6: top-Like Activity Monitoring Tool
🟢 خلاصه مقاله:
مقالهای که مرور شده به ابزاری به نام "pg_activity" پرداخته است که توانایی نظارت بر عملکرد و فرآیندهای در حال اجرا در پایگاه داده Postgres را فراهم میکند. این ابزار عملکردی مشابه به ابزارهایی نظیر top یا htop در سیستمهای عامل را داراست، با این تفاوت که به طور ویژه برای دادهها و فرآیندهای مرتبط با Postgres طراحی شده است. پیکربندی pg_activity به گونهای است که کاربران قادر به مشاهده پرس و جوهای در حال اجرا، آمار عملکرد بهروز و سایر اطلاعات مهم مرتبط با پایگاه داده هستند. استفاده از این ابزار برای توسعهدهندگانی که به دنبال بهینهسازی عملکرد و نظارت دقیقتر بر دادهها و فرآیندهای پایگاه داده خود هستند، ارزشمند است. این مقاله بیشتر روی قابلیتها و مزایای استفاده از pg_activity در محیطهای تولیدی و توسعه تاکید دارد.
🟣لینک مقاله:
https://postgresweekly.com/link/166226/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pg_activity 3.6: top-Like Activity Monitoring Tool
🟢 خلاصه مقاله:
مقالهای که مرور شده به ابزاری به نام "pg_activity" پرداخته است که توانایی نظارت بر عملکرد و فرآیندهای در حال اجرا در پایگاه داده Postgres را فراهم میکند. این ابزار عملکردی مشابه به ابزارهایی نظیر top یا htop در سیستمهای عامل را داراست، با این تفاوت که به طور ویژه برای دادهها و فرآیندهای مرتبط با Postgres طراحی شده است. پیکربندی pg_activity به گونهای است که کاربران قادر به مشاهده پرس و جوهای در حال اجرا، آمار عملکرد بهروز و سایر اطلاعات مهم مرتبط با پایگاه داده هستند. استفاده از این ابزار برای توسعهدهندگانی که به دنبال بهینهسازی عملکرد و نظارت دقیقتر بر دادهها و فرآیندهای پایگاه داده خود هستند، ارزشمند است. این مقاله بیشتر روی قابلیتها و مزایای استفاده از pg_activity در محیطهای تولیدی و توسعه تاکید دارد.
🟣لینک مقاله:
https://postgresweekly.com/link/166226/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
GitHub
GitHub - dalibo/pg_activity: pg_activity is a top like application for PostgreSQL server activity monitoring.
pg_activity is a top like application for PostgreSQL server activity monitoring. - dalibo/pg_activity
❤1
🔵 عنوان مقاله
Don’t Let Postgres Maintenance Slip Through the Cracks & Let Performance Fall Off a Cliff
🟢 خلاصه مقاله:
مقالهای که به بررسی آن پرداختهاید، به موضوع روشهای پیشگیرانه در نگهداری و مانیتورینگ پایگاهدادهها اختصاص دارد تا به کشف ریسکهای پنهان عملکردی همچون پرسوجوهای کند، رفتار چکپوینتها، و مشکلات برقراری ارتباط پرداخته و قبل از آنکه این مسائل تشدید شوند، به حل آنها بپردازد. هدف از این رویکرد، اطمینان از قابلیت اطمینان پایگاهداده است. این مقاله پرکتیسهایی را ارائه میدهد که به مدیران پایگاهداده این امکان را میدهند که با استفاده از ابزارهای مناسب و روشهای بهروز، عملکرد سیستمهایشان را بهطور موثر تحت نظر داشته باشند و به ارتقاء پایدار عملکرد و کاهش خطرات احتمالی بپردازند. این مقاله برای متخصصان IT و مدیران دیتابیس که بهدنبال بهینهسازی و پیشگیری از مشکلات فنی هستند، بسیار مفید است.
🟣لینک مقاله:
https://postgresweekly.com/link/166211/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Don’t Let Postgres Maintenance Slip Through the Cracks & Let Performance Fall Off a Cliff
🟢 خلاصه مقاله:
مقالهای که به بررسی آن پرداختهاید، به موضوع روشهای پیشگیرانه در نگهداری و مانیتورینگ پایگاهدادهها اختصاص دارد تا به کشف ریسکهای پنهان عملکردی همچون پرسوجوهای کند، رفتار چکپوینتها، و مشکلات برقراری ارتباط پرداخته و قبل از آنکه این مسائل تشدید شوند، به حل آنها بپردازد. هدف از این رویکرد، اطمینان از قابلیت اطمینان پایگاهداده است. این مقاله پرکتیسهایی را ارائه میدهد که به مدیران پایگاهداده این امکان را میدهند که با استفاده از ابزارهای مناسب و روشهای بهروز، عملکرد سیستمهایشان را بهطور موثر تحت نظر داشته باشند و به ارتقاء پایدار عملکرد و کاهش خطرات احتمالی بپردازند. این مقاله برای متخصصان IT و مدیران دیتابیس که بهدنبال بهینهسازی و پیشگیری از مشکلات فنی هستند، بسیار مفید است.
🟣لینک مقاله:
https://postgresweekly.com/link/166211/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
events.zoom.us
Webinar | Proactive Postgres Practices to Prevent Performance Bottlenecks
❤1🥰1
🔵 عنوان مقاله
Postgres 17.4, 16.8, 15.12, 14.17, and 13.20 Released
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته به توضیح انتشار جدیدی از نسخههای نگهداریشده در دو هفته اخیر میپردازد و به عنوان یک انتشار "خارج از دوره معمول" شناخته شده است. تمرکز اصلی این بهروزرسانیها بر رفع اشکالات میباشد. در این زمینه، Postgres 17 شاهد رفع نشت حافظه در تابع pg_createsubscriber و تغییر رفتار تابع نقل قول در کتابخانه libpq است. این اصلاحات در جهت بهبود عملکرد و کارایی پایگاه داده و ارتقاء امنیت آن تدابیری اتخاذ شدهاند.
🟣لینک مقاله:
https://postgresweekly.com/link/166214/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Postgres 17.4, 16.8, 15.12, 14.17, and 13.20 Released
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته به توضیح انتشار جدیدی از نسخههای نگهداریشده در دو هفته اخیر میپردازد و به عنوان یک انتشار "خارج از دوره معمول" شناخته شده است. تمرکز اصلی این بهروزرسانیها بر رفع اشکالات میباشد. در این زمینه، Postgres 17 شاهد رفع نشت حافظه در تابع pg_createsubscriber و تغییر رفتار تابع نقل قول در کتابخانه libpq است. این اصلاحات در جهت بهبود عملکرد و کارایی پایگاه داده و ارتقاء امنیت آن تدابیری اتخاذ شدهاند.
🟣لینک مقاله:
https://postgresweekly.com/link/166214/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
PostgreSQL News
PostgreSQL 17.4, 16.8, 15.12, 14.17, and 13.20 Released!
The PostgreSQL Global Development Group has released an update to all supported versions of PostgreSQL, including 17.4, 16.8, 15.12, 14.17, …
🔵 عنوان مقاله
While Postgres Redlined, Robinhood Sharded to Scale
🟢 خلاصه مقاله:
این مقاله توسط یک مهندس سابق شرکت Robinhood نوشته شده و به بررسی مشکلات مقیاسبندی پایگاه داده Postgres در این شرکت و چگونگی حل این مشکلات از طریق شاردینگ میپردازد. نویسنده توضیح میدهد که با افزایش حجم کاربران و دادهها، سیستم پایگاه دادهی مرکزی Postgres شروع به نمایش نقاط ضعف در پردازش و ذخیرهسازی دادهها کرد. این موضوع باعث شد امنیت و سرعت دسترسی به دادهها تحت تأثیر قرار گیرد. شرکت برای حل این مشکل به سمت استراتژی شاردینگ روی آورد، که شامل تقسیم پایگاه داده به بخشهای کوچکتر و مدیریت مستقل آنها برای بهبود عملکرد و مقیاسپذیری میشود. این رویکرد نه تنها به بهبود امنیت و کارایی کمک کرد بلکه امکان رشد و گسترش آتی را برای Robinhood فراهم آورد. نویسنده با بررسی فنی و تجربی، تواناییهای شاردینگ را به عنوان یک راهکار عالی برای مقابله با چالشهای مقیاس در محیطهای پویای تجاری امروزی معرفی میکند.
🟣لینک مقاله:
https://postgresweekly.com/link/166220/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
While Postgres Redlined, Robinhood Sharded to Scale
🟢 خلاصه مقاله:
این مقاله توسط یک مهندس سابق شرکت Robinhood نوشته شده و به بررسی مشکلات مقیاسبندی پایگاه داده Postgres در این شرکت و چگونگی حل این مشکلات از طریق شاردینگ میپردازد. نویسنده توضیح میدهد که با افزایش حجم کاربران و دادهها، سیستم پایگاه دادهی مرکزی Postgres شروع به نمایش نقاط ضعف در پردازش و ذخیرهسازی دادهها کرد. این موضوع باعث شد امنیت و سرعت دسترسی به دادهها تحت تأثیر قرار گیرد. شرکت برای حل این مشکل به سمت استراتژی شاردینگ روی آورد، که شامل تقسیم پایگاه داده به بخشهای کوچکتر و مدیریت مستقل آنها برای بهبود عملکرد و مقیاسپذیری میشود. این رویکرد نه تنها به بهبود امنیت و کارایی کمک کرد بلکه امکان رشد و گسترش آتی را برای Robinhood فراهم آورد. نویسنده با بررسی فنی و تجربی، تواناییهای شاردینگ را به عنوان یک راهکار عالی برای مقابله با چالشهای مقیاس در محیطهای پویای تجاری امروزی معرفی میکند.
🟣لینک مقاله:
https://postgresweekly.com/link/166220/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Tomlinford
While Postgres Redlined, Robinhood Sharded to Scale
The alarm went off at 6:20am. I rolled out of bed, opened my laptop, and pulled up Grafana. Equity markets open at 6:30 and I hoped last night’s fixes would hold. I watched request and order counts, comparing them to a week ago when things ran fine. Slack…
❤1👍1
🔵 عنوان مقاله
FerretDB 2.0: An Open Source MongoDB Alternative
🟢 خلاصه مقاله:
FerretDB یک پیادهسازی از MongoDB است که بر روی Postgres و افزونه DocumentDB مایکروسافت قرار گرفته است. به خلاف MongoDB، FerretDB تحت مجوز Apache 2.0 منتشر شده است. این امکان را فراهم میآورد که کاربران بتوانند از پایگاه دادهی مدیریت سندی مانند MongoDB استفاده کنند، در حالی که از زیرساختهای قدرتمند و اثبات شدهی Postgres بهره میبرند. این نوآوری به این معناست که کاربران میتوانند از ویژگیها و امنیتی که Postgres ارائه میدهد استفاده کنند، در حالی که از رابط برنامهنویسی کاربردی MongoDB برخوردار هستند. این محصول به خصوص برای آن دسته از توسعهدهندگانی که به دنبال استفاده از MongoDB در محیطهایی هستند که Postgres ترجیح داده میشود، مفید است. FerretDB در گیتهاب قابل دسترسی است و میتواند به عنوان یک جایگزین قابل اعتماد برای MongoDB استفاده شود.
🟣لینک مقاله:
https://postgresweekly.com/link/166521/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
FerretDB 2.0: An Open Source MongoDB Alternative
🟢 خلاصه مقاله:
FerretDB یک پیادهسازی از MongoDB است که بر روی Postgres و افزونه DocumentDB مایکروسافت قرار گرفته است. به خلاف MongoDB، FerretDB تحت مجوز Apache 2.0 منتشر شده است. این امکان را فراهم میآورد که کاربران بتوانند از پایگاه دادهی مدیریت سندی مانند MongoDB استفاده کنند، در حالی که از زیرساختهای قدرتمند و اثبات شدهی Postgres بهره میبرند. این نوآوری به این معناست که کاربران میتوانند از ویژگیها و امنیتی که Postgres ارائه میدهد استفاده کنند، در حالی که از رابط برنامهنویسی کاربردی MongoDB برخوردار هستند. این محصول به خصوص برای آن دسته از توسعهدهندگانی که به دنبال استفاده از MongoDB در محیطهایی هستند که Postgres ترجیح داده میشود، مفید است. FerretDB در گیتهاب قابل دسترسی است و میتواند به عنوان یک جایگزین قابل اعتماد برای MongoDB استفاده شود.
🟣لینک مقاله:
https://postgresweekly.com/link/166521/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
blog.ferretdb.io
FerretDB 2.0 GA: Open Source MongoDB alternative, ready for production | FerretDB Blog
We are thrilled to announce the general availability (GA) of FerretDB v2.0, a groundbreaking release that delivers a high-performance, fully open-source alternative to MongoDB, ready for production workloads.
🔵 عنوان مقاله
pytest-postgresql 7.0: A Pytest Plugin for Testing Postgres-Using Python Apps
🟢 خلاصه مقاله:
این مقاله به معرفی پلاگینی برای چارچوب تست پایتون Pytest میپردازد که برای مدیریت فیکسچرها هنگام تست کردن پایگاه دادههای Postgres طراحی شده است. فیکسچرها (Fixture) در زمینه تست نرم افزار، منابعی هستند که قبل از اجرای تستها برپا شده و پس از اتمام تستها، منحل میگردند. این پلاگین به توسعهدهندگان کمک میکند تا به راحتی محیطهای لازم برای دادههای آزمایشی خود را در بانک اطلاعاتی PostgreSQL فراهم نمایند و به این ترتیب، دقت و کارایی تستهای خود را افزایش دهند.
🟣لینک مقاله:
https://postgresweekly.com/link/166545/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pytest-postgresql 7.0: A Pytest Plugin for Testing Postgres-Using Python Apps
🟢 خلاصه مقاله:
این مقاله به معرفی پلاگینی برای چارچوب تست پایتون Pytest میپردازد که برای مدیریت فیکسچرها هنگام تست کردن پایگاه دادههای Postgres طراحی شده است. فیکسچرها (Fixture) در زمینه تست نرم افزار، منابعی هستند که قبل از اجرای تستها برپا شده و پس از اتمام تستها، منحل میگردند. این پلاگین به توسعهدهندگان کمک میکند تا به راحتی محیطهای لازم برای دادههای آزمایشی خود را در بانک اطلاعاتی PostgreSQL فراهم نمایند و به این ترتیب، دقت و کارایی تستهای خود را افزایش دهند.
🟣لینک مقاله:
https://postgresweekly.com/link/166545/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
GitHub
GitHub - dbfixtures/pytest-postgresql: This is a pytest plugin, that enables you to test your code that relies on a running PostgreSQL…
This is a pytest plugin, that enables you to test your code that relies on a running PostgreSQL Database. It allows you to specify fixtures for PostgreSQL process and client. - dbfixtures/pytest-po...
Forwarded from Bardia & Erfan
👇 لیست کانالهای مجموعه Labdon با بهروزترین اخبار، آموزشها و ترفندها در حوزههای مختلف:
➖➖➖➖➖➖➖➖
🔵 گولنگ - همه چیز از اخبار تا نکات کلیدی
🔴 @gopher_academy
➖➖➖➖➖➖➖➖
🔵 موقعیت شغلی های گولنگ چه ایرانی و چه خارجی
🔴 @gopher_job
➖➖➖➖➖➖➖➖
🔵 انواع دیتابیس ها ردیس مانگو پستگرس و سایر دیتابیس ها
🔴 @database_academy
🟢 حوزه های تحت پوشش
(redis , mysql , postgresl , mongo ,etc)
➖➖➖➖➖➖➖➖
🔵 دنیای بلاکچین و ارز های دیجیتال
🔴 @Blockchain_labdon
🟢 حوزه های تحت پوشش
(Bitcoin, Ethereum, Altcoins, Blockchain, Policy & Regulations, AI, NFTs, DeFi)
➖➖➖➖➖➖➖➖
🔵 مهندسی نرم افزار
🔴 @software_labdon
🟢 حوزه های تحت پوشش
(Engineering, Architecture, Design, Testing, Security , QA)
➖➖➖➖➖➖➖➖
🔵 لینوکس- از توزیعها تا ترفندهای امنیتی
🔴 @linux_labdon
🟢 حوزه های تحت پوشش
(Linux Distributions, Open Source Software, Security Tips ,New Releases & Features)
➖➖➖➖➖➖➖➖
🔵 دوآپـس - ابزارها و روندهای جدید
🔴 @devops_labdon
🟢 حوزه های تحت پوشش
(CI/CD Pipelines, Cloud Infrastructure, Containerization & Orchestration, Monitoring & Performance, Infrastructure as Code, Security in DevOps)
➖➖➖➖➖➖➖➖
🕸 @labdon_academy
➖➖➖➖➖➖➖➖
🔵 گولنگ - همه چیز از اخبار تا نکات کلیدی
🔴 @gopher_academy
➖➖➖➖➖➖➖➖
🔵 موقعیت شغلی های گولنگ چه ایرانی و چه خارجی
🔴 @gopher_job
➖➖➖➖➖➖➖➖
🔵 انواع دیتابیس ها ردیس مانگو پستگرس و سایر دیتابیس ها
🔴 @database_academy
🟢 حوزه های تحت پوشش
(redis , mysql , postgresl , mongo ,etc)
➖➖➖➖➖➖➖➖
🔵 دنیای بلاکچین و ارز های دیجیتال
🔴 @Blockchain_labdon
🟢 حوزه های تحت پوشش
(Bitcoin, Ethereum, Altcoins, Blockchain, Policy & Regulations, AI, NFTs, DeFi)
➖➖➖➖➖➖➖➖
🔵 مهندسی نرم افزار
🔴 @software_labdon
🟢 حوزه های تحت پوشش
(Engineering, Architecture, Design, Testing, Security , QA)
➖➖➖➖➖➖➖➖
🔵 لینوکس- از توزیعها تا ترفندهای امنیتی
🔴 @linux_labdon
🟢 حوزه های تحت پوشش
(Linux Distributions, Open Source Software, Security Tips ,New Releases & Features)
➖➖➖➖➖➖➖➖
🔵 دوآپـس - ابزارها و روندهای جدید
🔴 @devops_labdon
🟢 حوزه های تحت پوشش
(CI/CD Pipelines, Cloud Infrastructure, Containerization & Orchestration, Monitoring & Performance, Infrastructure as Code, Security in DevOps)
➖➖➖➖➖➖➖➖
🕸 @labdon_academy
🔵 عنوان مقاله
PGConf.dev 2025: May 13-16 in Montréal, Canada
🟢 خلاصه مقاله:
رویداد جانشین PGCon، کنفرانس توسعه PostgreSQL، یکی از بزرگترین گردهماییهای سالانه جامعه است که تمرکز خاصی بر روی جمع آوری مشارکتکنندگان Postgres دارد. ثبت نام اکنون باز است، اما خبر مهم این هفته این است که برنامه کنفرانس اکنون زنده و بسیار پربار است.
🟣لینک مقاله:
https://postgresweekly.com/link/166528/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
PGConf.dev 2025: May 13-16 in Montréal, Canada
🟢 خلاصه مقاله:
رویداد جانشین PGCon، کنفرانس توسعه PostgreSQL، یکی از بزرگترین گردهماییهای سالانه جامعه است که تمرکز خاصی بر روی جمع آوری مشارکتکنندگان Postgres دارد. ثبت نام اکنون باز است، اما خبر مهم این هفته این است که برنامه کنفرانس اکنون زنده و بسیار پربار است.
🟣لینک مقاله:
https://postgresweekly.com/link/166528/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
2025.pgconf.dev
PostgreSQL Development Conference 2025
PostgreSQL Development Conference, an annual event for developers of PostgreSQL.
👍1🙏1
🔵 عنوان مقاله
New Random Functions in Postgres 17
🟢 خلاصه مقاله:
در ورژن ۱۷ PostgreSQL، توابع جدیدی برای تولید اعداد تصادفی معرفی شدهاند، بنابراین دریافت یک عدد صحیح بین ۱ تا ۱۰ حالا به سادگی استفاده از random(1,10) امکانپذیر است.
🟣لینک مقاله:
https://postgresweekly.com/link/166537/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
New Random Functions in Postgres 17
🟢 خلاصه مقاله:
در ورژن ۱۷ PostgreSQL، توابع جدیدی برای تولید اعداد تصادفی معرفی شدهاند، بنابراین دریافت یک عدد صحیح بین ۱ تا ۱۰ حالا به سادگی استفاده از random(1,10) امکانپذیر است.
🟣لینک مقاله:
https://postgresweekly.com/link/166537/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
👍2
🔵 عنوان مقاله
(Ab)using pgRouting to Use Postgres as a Graph Database
🟢 خلاصه مقاله:
پس از نصب افزونه pgRouting، قابلیتهای مسیریابی مکانی مدرن در دسترس قرار میگیرند، معمولاً در ترکیب با PostGIS استفاده میشود. جالب است که بدانید مکانیزمهای جستجوی مسیر و گراف این افزونه تنها به دادههای جغرافیایی محدود نمیشوند؛ در واقع، این امکانات میتوانند برای ناوبری در هر نوع دادهای که به شکل گراف سازماندهی شده باشد، به کار روند.
🟣لینک مقاله:
https://postgresweekly.com/link/166212/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
(Ab)using pgRouting to Use Postgres as a Graph Database
🟢 خلاصه مقاله:
پس از نصب افزونه pgRouting، قابلیتهای مسیریابی مکانی مدرن در دسترس قرار میگیرند، معمولاً در ترکیب با PostGIS استفاده میشود. جالب است که بدانید مکانیزمهای جستجوی مسیر و گراف این افزونه تنها به دادههای جغرافیایی محدود نمیشوند؛ در واقع، این امکانات میتوانند برای ناوبری در هر نوع دادهای که به شکل گراف سازماندهی شده باشد، به کار روند.
🟣لینک مقاله:
https://postgresweekly.com/link/166212/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Supabase
Postgres as a Graph Database: (Ab)using pgRouting
Learn how to use pgRouting as a lightweight graph database solution in Postgres.
Forwarded from DevOps Labdon
🔵 عنوان مقاله
Siren Call of SQLite on the Server (3 minute read)
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به بررسی استفاده از SQLite در کنار ابزارهایی مانند LiteFS برای تکثیر دادهها در محیطهای سروری توسط Fly.io میپردازد. مقاله با این وجود استدلال میکند که استفاده از SQLite به عنوان دیتابیس اصلی در محیطهای تولید، پیچیدگیهای غیرضروری به همراه دارد. SQLite برای برنامههای تکنمونهای مناسب است؛ با این حال، برای بیشتر بارهای کاری در تولید، استفاده از پایگاه داده سنتی مانند PostgreSQL به دلیل سادگی در پشتیبانگیری، مقیاسپذیری و مهاجرتها، گزینه بهتری است. در نهایت، مقاله به این نتیجه میرسد که برای کاربردهایی که نیازمند استقرار راهکارهای پیچیدهتر هستند، PostgreSQL را به عنوان یک گزینهی ترجیحی قلمداد میکند.
🟣لینک مقاله:
https://pid1.dev/posts/siren-call-of-sqlite-on-the-server/?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
Siren Call of SQLite on the Server (3 minute read)
🟢 خلاصه مقاله:
مقالهای که مورد بررسی قرار گرفته، به بررسی استفاده از SQLite در کنار ابزارهایی مانند LiteFS برای تکثیر دادهها در محیطهای سروری توسط Fly.io میپردازد. مقاله با این وجود استدلال میکند که استفاده از SQLite به عنوان دیتابیس اصلی در محیطهای تولید، پیچیدگیهای غیرضروری به همراه دارد. SQLite برای برنامههای تکنمونهای مناسب است؛ با این حال، برای بیشتر بارهای کاری در تولید، استفاده از پایگاه داده سنتی مانند PostgreSQL به دلیل سادگی در پشتیبانگیری، مقیاسپذیری و مهاجرتها، گزینه بهتری است. در نهایت، مقاله به این نتیجه میرسد که برای کاربردهایی که نیازمند استقرار راهکارهای پیچیدهتر هستند، PostgreSQL را به عنوان یک گزینهی ترجیحی قلمداد میکند.
🟣لینک مقاله:
https://pid1.dev/posts/siren-call-of-sqlite-on-the-server/?utm_source=tldrdevops
➖➖➖➖➖➖➖➖
👑 @DevOps_Labdon
🔵 عنوان مقاله
A Roundup of Postgres Query Plan Visualization Tools
🟢 خلاصه مقاله:
دستور EXPLAIN به همراه گزینههای متعدد آن، درک عمیقی از نحوهی برنامهریزی اجرای پرسوجو توسط PostgreSQL (پُستگرسکیوال) به شما میدهد و راهی عالی برای فهمیدن دلایل کندی برخی پرسوجوها است. خروجی خام این دستور ممکن است خواندنی نباشد، اما چندین ابزار وجود دارد که میتوانند به تجزیه و تحلیل آن کمک کنند.
🟣لینک مقاله:
https://postgresweekly.com/link/166524/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
A Roundup of Postgres Query Plan Visualization Tools
🟢 خلاصه مقاله:
دستور EXPLAIN به همراه گزینههای متعدد آن، درک عمیقی از نحوهی برنامهریزی اجرای پرسوجو توسط PostgreSQL (پُستگرسکیوال) به شما میدهد و راهی عالی برای فهمیدن دلایل کندی برخی پرسوجوها است. خروجی خام این دستور ممکن است خواندنی نباشد، اما چندین ابزار وجود دارد که میتوانند به تجزیه و تحلیل آن کمک کنند.
🟣لینک مقاله:
https://postgresweekly.com/link/166524/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pgMustard
Postgres query plan visualization tools - pgMustard
When you’ve got a slow Postgres query, EXPLAIN and its parameters are incredibly useful for working out why. However, the information returned can be difficult (and time-consuming) to interpret, especially for more complex queries. Over the years, people…
کوئرا با ۳۰۰ میلیون کاربر ماهانه، ۲۵,۰۰۰+ سوال روزانه، و ۱۰+ سال فعالیت، دیتابیسش میدونی چیه؟ MySQL! دهها ترابایت داده و صدها هزار QPS. و اومدن شدیدا بهینهش کردن، چطوری؟
اینا میبینن بار دیتابیس (Database Load) با رشد کاربران، پتابایتها بیشتر و با ویژگیهای ML محصولاتشون بالاتر هم میره، و البته اسپمرها هم یه بخشی ازین بار بودن.
بار دیتابیسشون تو خواندن (Reads) (۷۰٪ ترافیک)، حجم داده (Data Volume) ( که رشد ۲۰۰٪ تو ۵ سال داشت)، و نوشتن (Writes) (کم اما حساس) بود. کوئرا برای بهینهسازی روی خواندن و حجم داده تمرکز کرد، چون ترافیک بیشترشون سمت خواندن بود.
اسکنهای بزرگ رو با LIMIT و صفحهبندی (Pagination) بهینه کردن. این کار از اسکن غیرضروری جلوگیری کرد و پرفومنس کوئریها رو تا ۶۰٪ سریعتر کرد.
برای کوئریهای کند، ایندکسها رو دوباره طراحی کردن، ستونهای غیرضروری حذف شدن، ORDER BY به کلاینت منتقل شد، و کوئریهای غیرضروری هم حذف شدند. و بار CPU ۵۰٪ کم شد.
برای High QPS، کوئرا کش رو بهینه کرد. کلید کش (Cache Key) به uid تغییر داد تا QPS رو بیش از ۹۰٪ کم کنه.
برای حجم داده ها، کوئرا MyRocks که فیسبوک توسعه داده بود رو برای شاردهای قدیمی MySQL استفاده کرد. این کار فضا رو تا ۸۰٪ برای برخی جدولها و ۵۰-۶۰٪ برای بقیه کاهش داد.
مای راک با فشردهسازی بهتر، IO رو کم کرد و زمان بکاپ/ریستور رو ۵۰٪ سریعتر کرد. شاردهای قدیمی (بیش از ۱۸ ماه) به MyRocks منتقل شدند.
برای نوشتن، lag رپلیکیشن رو با رپلیکیشن موازی Parallel ( توی mysql تنظیماتش slave_parallel_type یا شبیه شه) حل کردن تا بار رو بهتر توزیع کنه.
یعنی یه تاخیری بین دیتابیس مادر با رپلیکا به وجود میومد که رو برداشتن سیستمش رو موازی کردن، مشکلش چی بود؟ وقتی رپلیکا داره میخونه یا مینویسه ممکنه خیلی زمان بر بشه یا transaction دیتابیس مادر خیلی زمانبر باشه رپلیکا مجبور بشه صبر کنه تا تراکنش تموم بشه بعد تغییرات رو اعمال کنه
خلاصه اینکه نتیجه این شد که کوئرا:
- با بهینهسازی کش و کوئریها
- استفاده از MyRocks،
- و رپلیکیشن موازی
بار رو برای ۳۰۰ میلیون کاربر روی دیتابیس MySQL کاهش داد.
| <Saman/>
➖➖➖➖➖➖➖➖
https://t.me/addlist/KpzXaiSpKENkMGM0
اینا میبینن بار دیتابیس (Database Load) با رشد کاربران، پتابایتها بیشتر و با ویژگیهای ML محصولاتشون بالاتر هم میره، و البته اسپمرها هم یه بخشی ازین بار بودن.
بار دیتابیسشون تو خواندن (Reads) (۷۰٪ ترافیک)، حجم داده (Data Volume) ( که رشد ۲۰۰٪ تو ۵ سال داشت)، و نوشتن (Writes) (کم اما حساس) بود. کوئرا برای بهینهسازی روی خواندن و حجم داده تمرکز کرد، چون ترافیک بیشترشون سمت خواندن بود.
اسکنهای بزرگ رو با LIMIT و صفحهبندی (Pagination) بهینه کردن. این کار از اسکن غیرضروری جلوگیری کرد و پرفومنس کوئریها رو تا ۶۰٪ سریعتر کرد.
برای کوئریهای کند، ایندکسها رو دوباره طراحی کردن، ستونهای غیرضروری حذف شدن، ORDER BY به کلاینت منتقل شد، و کوئریهای غیرضروری هم حذف شدند. و بار CPU ۵۰٪ کم شد.
برای High QPS، کوئرا کش رو بهینه کرد. کلید کش (Cache Key) به uid تغییر داد تا QPS رو بیش از ۹۰٪ کم کنه.
برای حجم داده ها، کوئرا MyRocks که فیسبوک توسعه داده بود رو برای شاردهای قدیمی MySQL استفاده کرد. این کار فضا رو تا ۸۰٪ برای برخی جدولها و ۵۰-۶۰٪ برای بقیه کاهش داد.
مای راک با فشردهسازی بهتر، IO رو کم کرد و زمان بکاپ/ریستور رو ۵۰٪ سریعتر کرد. شاردهای قدیمی (بیش از ۱۸ ماه) به MyRocks منتقل شدند.
برای نوشتن، lag رپلیکیشن رو با رپلیکیشن موازی Parallel ( توی mysql تنظیماتش slave_parallel_type یا شبیه شه) حل کردن تا بار رو بهتر توزیع کنه.
یعنی یه تاخیری بین دیتابیس مادر با رپلیکا به وجود میومد که رو برداشتن سیستمش رو موازی کردن، مشکلش چی بود؟ وقتی رپلیکا داره میخونه یا مینویسه ممکنه خیلی زمان بر بشه یا transaction دیتابیس مادر خیلی زمانبر باشه رپلیکا مجبور بشه صبر کنه تا تراکنش تموم بشه بعد تغییرات رو اعمال کنه
خلاصه اینکه نتیجه این شد که کوئرا:
- با بهینهسازی کش و کوئریها
- استفاده از MyRocks،
- و رپلیکیشن موازی
بار رو برای ۳۰۰ میلیون کاربر روی دیتابیس MySQL کاهش داد.
| <Saman/>
➖➖➖➖➖➖➖➖
https://t.me/addlist/KpzXaiSpKENkMGM0
❤1👍1
یکی از قابلیتهایی که Full-Text در MySQL دارد، امکان تعریف stopwords برای جلوگیری از بزرگ شدن ایندکس و افزایش کیفیت نتایج جستجو است.
ما میتونیم با حذف کلماتی مانند حروف اضافه، افعال رایج و حتی کلمات نامناسب، ایندکس بهینه داشته باشیم.
برای این کار کافیه، جدولی با یک ستون به نام value بسازیم و اون رو با استفاده از آپشن innodb_ft_server_stopword_table به MySQL معرفی کنیم.
دیکشنریهای آمادهی زیادی برای stopwords در اینترنت وجود داره که میشه ازشون استفاده کرد.
یکی از دیکشنریهای Open Source که میشه ازش استفاده کرد، پروژهی زیر است:
https://github.com/kharazi/persian-stopwords
بعد از اعمال تغییرات در stopwords، باید ایندکس Full-Text را مجدداً ایجاد کنید تا تغییرات اعمال شود.
<Hamoon Mohammadian Pour/>
➖➖➖➖➖➖➖➖
https://t.me/addlist/KpzXaiSpKENkMGM0
ما میتونیم با حذف کلماتی مانند حروف اضافه، افعال رایج و حتی کلمات نامناسب، ایندکس بهینه داشته باشیم.
برای این کار کافیه، جدولی با یک ستون به نام value بسازیم و اون رو با استفاده از آپشن innodb_ft_server_stopword_table به MySQL معرفی کنیم.
دیکشنریهای آمادهی زیادی برای stopwords در اینترنت وجود داره که میشه ازشون استفاده کرد.
یکی از دیکشنریهای Open Source که میشه ازش استفاده کرد، پروژهی زیر است:
https://github.com/kharazi/persian-stopwords
بعد از اعمال تغییرات در stopwords، باید ایندکس Full-Text را مجدداً ایجاد کنید تا تغییرات اعمال شود.
<Hamoon Mohammadian Pour/>
➖➖➖➖➖➖➖➖
https://t.me/addlist/KpzXaiSpKENkMGM0
❤3
Forwarded from Bardia & Erfan
دوره رایگان آموزش زبان انگلیسی برای دولوپرها
#Learn #English #Developer #Tutorial #Essential #Communication #Speaking #Speak #Practice
https://www.freecodecamp.org/learn/a2-english-for-developers/
➖➖➖➖➖➖➖➖
https://t.me/addlist/KpzXaiSpKENkMGM0
#Learn #English #Developer #Tutorial #Essential #Communication #Speaking #Speak #Practice
https://www.freecodecamp.org/learn/a2-english-for-developers/
➖➖➖➖➖➖➖➖
https://t.me/addlist/KpzXaiSpKENkMGM0
👍3❤2
🔵 عنوان مقاله
Introducing pgNow: A Point-in-Time Diagnostic Tool
🟢 خلاصه مقاله:
- یک ابزار دسکتاپ متقاطع (cross-platform) رایگان (ولی نه متنباز - زیرا در مرحله اولیه و محدود با ثبت ایمیل قابل دسترسی است) ایجاد شده توسط شرکت Redgate که برای برجستهسازی و تحلیل دادههای زنده در مورد پرسوجوها (queries)، فهرستها (indexes)، تنظیمات پیکربندی (configuration settings) و دیگر عناصر مهم عملیات خوشهی پستگرس (Postgres cluster) طراحی شده است. حتی اگر شما آن را دریافت نکنید، رایان (Ryan) در اینجا یک بررسی دقیق از ویژگیهایی که این ابزار ارائه میدهد، ارائه کرده است.
به خوانندگان فنی توصیه میشود که حتماً این بررسی را مطالعه کنند تا با امکانات و قابلیتهای این ابزار آشنا شوند، حتی اگر فعلاً قصد استفاده از آن را نداشته باشند. این اطلاعات میتواند به شناخت بهتر و استفاده مؤثرتر از پستگرس در پروژههای توسعه نرمافزار کمک کند.
🟣لینک مقاله:
https://postgresweekly.com/link/166823/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Introducing pgNow: A Point-in-Time Diagnostic Tool
🟢 خلاصه مقاله:
- یک ابزار دسکتاپ متقاطع (cross-platform) رایگان (ولی نه متنباز - زیرا در مرحله اولیه و محدود با ثبت ایمیل قابل دسترسی است) ایجاد شده توسط شرکت Redgate که برای برجستهسازی و تحلیل دادههای زنده در مورد پرسوجوها (queries)، فهرستها (indexes)، تنظیمات پیکربندی (configuration settings) و دیگر عناصر مهم عملیات خوشهی پستگرس (Postgres cluster) طراحی شده است. حتی اگر شما آن را دریافت نکنید، رایان (Ryan) در اینجا یک بررسی دقیق از ویژگیهایی که این ابزار ارائه میدهد، ارائه کرده است.
به خوانندگان فنی توصیه میشود که حتماً این بررسی را مطالعه کنند تا با امکانات و قابلیتهای این ابزار آشنا شوند، حتی اگر فعلاً قصد استفاده از آن را نداشته باشند. این اطلاعات میتواند به شناخت بهتر و استفاده مؤثرتر از پستگرس در پروژههای توسعه نرمافزار کمک کند.
🟣لینک مقاله:
https://postgresweekly.com/link/166823/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Software and Booz
Introducing pgNow: A free, point-in-time diagnostic tool for PostgreSQL
pgNow is a free, cross-platform desktop tool created by Redgate that helps you identify key performance metrics and configuration optimizations in your running Postgres instance. Available now as a…
🔥1
🔵 عنوان مقاله
Postgres Gets a Self-Join Elimination Optimization
🟢 خلاصه مقاله:
چندین سال پیش، شخصی پیشنهاد داد که بهینهسازی اتصال (join) در مواردی که اتصالات داخلی متعدد به خود (که اغلب توسط ORMs اضافه میشوند) وجود دارد، میتوان آنها را تحت شرایط خاصی حذف کرد. این بهینهسازی، که به آن حذف اتصال به خود (Self-Join Elimination یا SJE) گفته میشود، اخیراً در Postgres اعمال شده است و در این commit در GitHub توضیح داده شده است.
🟣لینک مقاله:
https://postgresweekly.com/link/166818/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Postgres Gets a Self-Join Elimination Optimization
🟢 خلاصه مقاله:
چندین سال پیش، شخصی پیشنهاد داد که بهینهسازی اتصال (join) در مواردی که اتصالات داخلی متعدد به خود (که اغلب توسط ORMs اضافه میشوند) وجود دارد، میتوان آنها را تحت شرایط خاصی حذف کرد. این بهینهسازی، که به آن حذف اتصال به خود (Self-Join Elimination یا SJE) گفته میشود، اخیراً در Postgres اعمال شده است و در این commit در GitHub توضیح داده شده است.
🟣لینک مقاله:
https://postgresweekly.com/link/166818/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
GitHub
Implement Self-Join Elimination · postgres/postgres@fc069a3
The Self-Join Elimination (SJE) feature removes an inner join of a plain
table to itself in the query tree if it is proven that the join can be
replaced with a scan without impacting the query resu...
table to itself in the query tree if it is proven that the join can be
replaced with a scan without impacting the query resu...
🔥2👍1
به عنوان جوانی که هم دلار هزار تومنی رو دیدم هم صد هزار تومنی واقعا غمگین میباشم.
👌6🕊5🔥1💯1