آشنایی با کلاسترینگ در دیتابیس mariadb
حتماً میدونید که کلاسترینگ یکی از روشهای مهم برای افزایش دسترسپذیری و کارایی دیتابیسهاست. اما بیاید ببینیم کلاسترینگ چیه و چه تفاوت هایی با replication و sharding داره.
کلاسترینگ چیست؟
کلاسترینگ (Clustering) به مجموعهای از سرورها گفته میشه که بهعنوان یک واحد یکپارچه کار میکنن تا بار کاری دیتابیس رو بین خودشون تقسیم کنن. این سرورها به هم متصلاند و در صورت خرابی یکی از سرورها، سرورهای دیگه بار اونو بهعهده میگیرن، پس دیتابیس همیشه در دسترسه.
تفاوت کلاسترینگ با Replication
قابلیت Replication به معنی کپیکردن دادهها از یک سرور (master) به سرورهای دیگه (slaves) هست. در این حالت، فقط سرور master قابلیت نوشتن دادهها رو داره و سرورهای slave فقط خواندن دادهها رو انجام میدن. اگه master خراب بشه، باید بهصورت دستی یکی از slaves ها رو به master تبدیل کنیم.
تفاوت کلاسترینگ با Sharding
قابلیت Sharding به معنی تقسیم دادهها بین چند سرور بهطوری که هر سرور قسمتی از دادهها رو نگهداری میکنه. هر shard بهطور مستقل کار میکنه و عملیات نوشتن و خواندن رو انجام میده. این روش برای مقیاسپذیری بهتره، ولی مدیریت پیچیدهتری داره.
ابزارهای کلاسترینگ در MariaDB
دیتابیس MariaDB بهصورت داخلی از کلاسترینگ پشتیبانی نمیکنه، ولی میتونید از ابزارهایی مثل Galera Cluster استفاده کنید. Galera Cluster یکی از محبوبترین ابزارهای کلاسترینگ برای MariaDB هست که قابلیتهای فوقالعادهای مثل replication همزمان، failover خودکار، و load balancing رو فراهم میکنه.
الگوریتم اجرای کلاسترینگ
در کلاسترینگ با Galera، همه نودها بهطور همزمان قابلیت خواندن و نوشتن دادهها رو دارن. هر تغییر در دادهها بهصورت همزمان به همه نودها منتقل میشه. اگه یکی از نودها خراب بشه، نودهای دیگه بدون توقف کارشون رو ادامه میدن و بعد از بازگشت نود خراب، دادهها بهطور خودکار همگامسازی میشن.
مزایا استفاده از کلاسترینگ تو mariadb چیه؟
در صورت خرابی یکی از نودها، نودهای دیگه بدون وقفه به کارشون ادامه میدن این باعث میشه دسترسی پذیری افزایش پیدا کنه.
با اضافهکردن نودهای جدید میتونید به راحتی بار کاری رو بین نودها تقسیم کنید، این باعث میشه دیتابیس scale پذیر باشه.
درخواستهای کاربر بهطور خودکار بین نودهای مختلف تقسیم میشه و یهجور لود بالانسینگ تو دیتابیس درست میشه.
کی از کلاسترینگ استفاده کنیم؟
بطور خلاصه اگه نیاز به دسترسپذیری بالا و مقیاسپذیری دارین و میتونید چالش های فنی پیچیدهتر رو انجام بدین، کلاسترینگ بهترین گزینه هست. برای کارهایی که نیاز به تقسیم دادهها دارین، شاردینگ مناسبتره و برای کارهایی که فقط نیاز به کپیکردن دادهها دارین، replication رو انتخاب کنید.
DevTwitter | <shahriyar bayat/>
➖➖➖➖➖➖➖➖
👑 @Database_Academy
حتماً میدونید که کلاسترینگ یکی از روشهای مهم برای افزایش دسترسپذیری و کارایی دیتابیسهاست. اما بیاید ببینیم کلاسترینگ چیه و چه تفاوت هایی با replication و sharding داره.
کلاسترینگ چیست؟
کلاسترینگ (Clustering) به مجموعهای از سرورها گفته میشه که بهعنوان یک واحد یکپارچه کار میکنن تا بار کاری دیتابیس رو بین خودشون تقسیم کنن. این سرورها به هم متصلاند و در صورت خرابی یکی از سرورها، سرورهای دیگه بار اونو بهعهده میگیرن، پس دیتابیس همیشه در دسترسه.
تفاوت کلاسترینگ با Replication
قابلیت Replication به معنی کپیکردن دادهها از یک سرور (master) به سرورهای دیگه (slaves) هست. در این حالت، فقط سرور master قابلیت نوشتن دادهها رو داره و سرورهای slave فقط خواندن دادهها رو انجام میدن. اگه master خراب بشه، باید بهصورت دستی یکی از slaves ها رو به master تبدیل کنیم.
تفاوت کلاسترینگ با Sharding
قابلیت Sharding به معنی تقسیم دادهها بین چند سرور بهطوری که هر سرور قسمتی از دادهها رو نگهداری میکنه. هر shard بهطور مستقل کار میکنه و عملیات نوشتن و خواندن رو انجام میده. این روش برای مقیاسپذیری بهتره، ولی مدیریت پیچیدهتری داره.
ابزارهای کلاسترینگ در MariaDB
دیتابیس MariaDB بهصورت داخلی از کلاسترینگ پشتیبانی نمیکنه، ولی میتونید از ابزارهایی مثل Galera Cluster استفاده کنید. Galera Cluster یکی از محبوبترین ابزارهای کلاسترینگ برای MariaDB هست که قابلیتهای فوقالعادهای مثل replication همزمان، failover خودکار، و load balancing رو فراهم میکنه.
الگوریتم اجرای کلاسترینگ
در کلاسترینگ با Galera، همه نودها بهطور همزمان قابلیت خواندن و نوشتن دادهها رو دارن. هر تغییر در دادهها بهصورت همزمان به همه نودها منتقل میشه. اگه یکی از نودها خراب بشه، نودهای دیگه بدون توقف کارشون رو ادامه میدن و بعد از بازگشت نود خراب، دادهها بهطور خودکار همگامسازی میشن.
مزایا استفاده از کلاسترینگ تو mariadb چیه؟
در صورت خرابی یکی از نودها، نودهای دیگه بدون وقفه به کارشون ادامه میدن این باعث میشه دسترسی پذیری افزایش پیدا کنه.
با اضافهکردن نودهای جدید میتونید به راحتی بار کاری رو بین نودها تقسیم کنید، این باعث میشه دیتابیس scale پذیر باشه.
درخواستهای کاربر بهطور خودکار بین نودهای مختلف تقسیم میشه و یهجور لود بالانسینگ تو دیتابیس درست میشه.
کی از کلاسترینگ استفاده کنیم؟
بطور خلاصه اگه نیاز به دسترسپذیری بالا و مقیاسپذیری دارین و میتونید چالش های فنی پیچیدهتر رو انجام بدین، کلاسترینگ بهترین گزینه هست. برای کارهایی که نیاز به تقسیم دادهها دارین، شاردینگ مناسبتره و برای کارهایی که فقط نیاز به کپیکردن دادهها دارین، replication رو انتخاب کنید.
DevTwitter | <shahriyar bayat/>
➖➖➖➖➖➖➖➖
👑 @Database_Academy
❤2👍2
🔵 عنوان مقاله
Top 3 Features in Postgres 17
🟢 خلاصه مقاله:
مقاله به بررسی توسعههای پیش رو در نگارش ۱۷ Postgres میپردازد که انتظار میرود این نگارش در انتهای ماه جاری عرضه شود. تمرکز اصلی بر روی بهبود عملکرد دستور MERGE، افزایش تواناییهای تابعهای JSON و پیشرفتهای کلی در عملکرد است. همچنین، شرکت EDB فهرست بهروزرسانیهای خود برای این نگارش را منتشر کرده که در آن پشتیبانی از پشتیبانگیری مرحلهای (incremental backup) در صدر قرار گرفته است. این بهبودها نشاندهنده تلاش بیوقفه برای افزایش کارایی و قابلیتهای Postgres در نگارشهای آینده است. این مقاله منبع مفیدی برای توسعهدهندگان و متخصصان IT است که به دنبال بهروزرسانیها و امکانات جدید در این پایگاه دادههای قدرتمند هستند.
🟣لینک مقاله:
https://postgresweekly.com/link/159299/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Top 3 Features in Postgres 17
🟢 خلاصه مقاله:
مقاله به بررسی توسعههای پیش رو در نگارش ۱۷ Postgres میپردازد که انتظار میرود این نگارش در انتهای ماه جاری عرضه شود. تمرکز اصلی بر روی بهبود عملکرد دستور MERGE، افزایش تواناییهای تابعهای JSON و پیشرفتهای کلی در عملکرد است. همچنین، شرکت EDB فهرست بهروزرسانیهای خود برای این نگارش را منتشر کرده که در آن پشتیبانی از پشتیبانگیری مرحلهای (incremental backup) در صدر قرار گرفته است. این بهبودها نشاندهنده تلاش بیوقفه برای افزایش کارایی و قابلیتهای Postgres در نگارشهای آینده است. این مقاله منبع مفیدی برای توسعهدهندگان و متخصصان IT است که به دنبال بهروزرسانیها و امکانات جدید در این پایگاه دادههای قدرتمند هستند.
🟣لینک مقاله:
https://postgresweekly.com/link/159299/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Neon
Top 3 features in Postgres 17 - Neon
One more year, Postgres is the most loved and trusted database in the world—and it’s about to get better with Postgres 17.
🔵 عنوان مقاله
pg_stat_monitor 2.1: Query Performance Monitoring Tool
🟢 خلاصه مقاله:
این مقاله به بررسی ابزاری جدید میپردازد که به عنوان جایگزینی پیشرفتهتر برای pg_stat_statements معرفی شده است. این ابزار جدید ویژگیهای متمایزکنندهای دارد که از آن جمله میتوان به دستهبندی آمار بر اساس زمان اشاره کرد. این ویژگی امکان استفاده دقیقتر و مؤثرتر از دادههای جمعآوری شده را فراهم میآورد. کد این ابزار در مخزن GitHub قابل دسترسی است و به نظر میرسد که این ابزار میتواند در تحلیل و بهبود عملکرد پایگاههای داده SQL کاربرد فراوانی داشته باشد. این مقاله تاکید میکند که با استفاده از ابزارهای مدرن و پیشرفته میتوان به شناخت بهتر و دقیقتری از دادهها و چگونگی استفاده از آنها دست یافت.
🟣لینک مقاله:
https://postgresweekly.com/link/159312/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pg_stat_monitor 2.1: Query Performance Monitoring Tool
🟢 خلاصه مقاله:
این مقاله به بررسی ابزاری جدید میپردازد که به عنوان جایگزینی پیشرفتهتر برای pg_stat_statements معرفی شده است. این ابزار جدید ویژگیهای متمایزکنندهای دارد که از آن جمله میتوان به دستهبندی آمار بر اساس زمان اشاره کرد. این ویژگی امکان استفاده دقیقتر و مؤثرتر از دادههای جمعآوری شده را فراهم میآورد. کد این ابزار در مخزن GitHub قابل دسترسی است و به نظر میرسد که این ابزار میتواند در تحلیل و بهبود عملکرد پایگاههای داده SQL کاربرد فراوانی داشته باشد. این مقاله تاکید میکند که با استفاده از ابزارهای مدرن و پیشرفته میتوان به شناخت بهتر و دقیقتری از دادهها و چگونگی استفاده از آنها دست یافت.
🟣لینک مقاله:
https://postgresweekly.com/link/159312/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Percona
pg_stat_monitor Documentation - pg_stat_monitor
pg_stat_monitor is a Query Performance Monitoring tool for PostgreSQL. pg_stat_monitor collects performance statistics and provides query performance insights in a single view and graphically in histogram.
These insights allow database users to understand…
These insights allow database users to understand…
🔵 عنوان مقاله
libpg-query-node: Use Postgres' SQL Parser from Node.js
🟢 خلاصه مقاله:
مقاله مورد بحث راهنماییهایی درباره استفاده از پارسر SQL پستگرس در سطح پایین از طریق Node با استفاده از libpg_query ارائه میدهد. اگر به دنبال استفاده از ابزاری با سطح بالاتری هستید، میتوانید از کتابخانه pgsql-parser استفاده کنید، که امکان پارس و سریالسازی پرس و جوها به/از ASTها را فراهم میکند. این امکانات به شما کمک میکنند تا با استفاده از Node، دادههای SQL را به صورت موثر تجزیه و تحلیل کنید، که این به نوبه خود قابلیتهای برنامههای کاربردی شما را گسترش میدهد و به افزایش دقت و کارایی کدهای مربوط به دیتابیس کمک میکند. این ابزارها به ویژه برای توسعهدهندگانی که به دنبال افزایش تعامل بین Node.js و پستگرس هستند، مناسب است.
🟣لینک مقاله:
https://postgresweekly.com/link/160433/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
libpg-query-node: Use Postgres' SQL Parser from Node.js
🟢 خلاصه مقاله:
مقاله مورد بحث راهنماییهایی درباره استفاده از پارسر SQL پستگرس در سطح پایین از طریق Node با استفاده از libpg_query ارائه میدهد. اگر به دنبال استفاده از ابزاری با سطح بالاتری هستید، میتوانید از کتابخانه pgsql-parser استفاده کنید، که امکان پارس و سریالسازی پرس و جوها به/از ASTها را فراهم میکند. این امکانات به شما کمک میکنند تا با استفاده از Node، دادههای SQL را به صورت موثر تجزیه و تحلیل کنید، که این به نوبه خود قابلیتهای برنامههای کاربردی شما را گسترش میدهد و به افزایش دقت و کارایی کدهای مربوط به دیتابیس کمک میکند. این ابزارها به ویژه برای توسعهدهندگانی که به دنبال افزایش تعامل بین Node.js و پستگرس هستند، مناسب است.
🟣لینک مقاله:
https://postgresweekly.com/link/160433/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
GitHub
GitHub - launchql/libpg-query-node: libpg_query PG port for node.js
libpg_query PG port for node.js. Contribute to launchql/libpg-query-node development by creating an account on GitHub.
🔵 عنوان مقاله
pgMustard v5: Review Postgres Query Plans Quickly
🟢 خلاصه مقاله:
این مقاله به توضیح ابزاری جدید برای بررسی و بهبود برنامههای درخواستی پایگاه دادههای Postgres میپردازد. ابزار مذکور با پشتیبانی از نسخه جدید Postgres 17 به روز شدهاست و ویژگیهای تازهای برای شناسایی مشکلات مانند کامپایل JIT ناکارآمد و زمانهای بیش از حد مجاز برای تریگرها را ارائه میکند. گرچه استفاده از این ابزار تنها به صورت رایگان برای پنج بار ممکن است و پس از آن، استفاده از آن نیازمند پرداخت هزینه خواهد بود. این ابزار به کاربران کمک میکند تا با شناسایی و اصلاح موارد بهینه نشده، عملکرد پایگاه داده خود را بهبود ببخشند.
🟣لینک مقاله:
https://postgresweekly.com/link/160430/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pgMustard v5: Review Postgres Query Plans Quickly
🟢 خلاصه مقاله:
این مقاله به توضیح ابزاری جدید برای بررسی و بهبود برنامههای درخواستی پایگاه دادههای Postgres میپردازد. ابزار مذکور با پشتیبانی از نسخه جدید Postgres 17 به روز شدهاست و ویژگیهای تازهای برای شناسایی مشکلات مانند کامپایل JIT ناکارآمد و زمانهای بیش از حد مجاز برای تریگرها را ارائه میکند. گرچه استفاده از این ابزار تنها به صورت رایگان برای پنج بار ممکن است و پس از آن، استفاده از آن نیازمند پرداخت هزینه خواهد بود. این ابزار به کاربران کمک میکند تا با شناسایی و اصلاح موارد بهینه نشده، عملکرد پایگاه داده خود را بهبود ببخشند.
🟣لینک مقاله:
https://postgresweekly.com/link/160430/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pgMustard
pgMustard - review Postgres query plans quickly
pgMustard is a Postgres EXPLAIN visualisation tool that also gives performance advice, scored based on its potential to speed up your query.
❤1🍾1
نکات و ترفندهای SQL برای بهینه سازی عملکرد دیتابیس شما.
#SQL #Database #Optimization #Performance #TipsAndTricks
https://github.com/ben-n93/SQL-tips-and-tricks
➖➖➖➖➖➖➖➖
👑 @Database_Academy
#SQL #Database #Optimization #Performance #TipsAndTricks
https://github.com/ben-n93/SQL-tips-and-tricks
➖➖➖➖➖➖➖➖
👑 @Database_Academy
🔥1
🗜 ابزار Redis، برای کاهش فشار هارد دیسک 💽
⁉️ Redis، که مخفف ” REmote DIctionary Server” است، برای کار با دادهها در حافظه 👨🏻💻 طراحی شده و به همین دلیل میتواند پاسخگویی بسیار سریعی را ارائه دهد. با استفاده از ابزار Redis، میتوان به راحتی عملیات پیچیده را با ⚡️ سرعتی بالا و ⏰ تأخیر کم انجام داد.
🔰 ویژگی های Redis:
📲 حافظه درون پایگاهی In-Memory Storage
💥 پشتیبانی از انواع مختلف دادهها
💫 پشتیبانی از قابلیتهای پیشرفته
📐 پایداری و مقیاسپذیری
⚠️ اگه میخوای نحوه فعالسازی Redis در سیستم عاملهای مختلف لینوکس، macOS و ویندوز رو بدونی؛ روی لینک زیر کلیک کن! 👇🏻
📌 در بلاگ تلاش نت بخوانید: 🔗 Redis ابزاری برای کاهش فشار هارد دیسک
➖➖➖➖➖➖➖➖
👑 @Database_Academy
⁉️ Redis، که مخفف ” REmote DIctionary Server” است، برای کار با دادهها در حافظه 👨🏻💻 طراحی شده و به همین دلیل میتواند پاسخگویی بسیار سریعی را ارائه دهد. با استفاده از ابزار Redis، میتوان به راحتی عملیات پیچیده را با ⚡️ سرعتی بالا و ⏰ تأخیر کم انجام داد.
🔰 ویژگی های Redis:
📲 حافظه درون پایگاهی In-Memory Storage
💥 پشتیبانی از انواع مختلف دادهها
💫 پشتیبانی از قابلیتهای پیشرفته
📐 پایداری و مقیاسپذیری
⚠️ اگه میخوای نحوه فعالسازی Redis در سیستم عاملهای مختلف لینوکس، macOS و ویندوز رو بدونی؛ روی لینک زیر کلیک کن! 👇🏻
📌 در بلاگ تلاش نت بخوانید: 🔗 Redis ابزاری برای کاهش فشار هارد دیسک
➖➖➖➖➖➖➖➖
👑 @Database_Academy
🍾3
🔵 عنوان مقاله
Playing with BOLT to Get a Faster Postgres
🟢 خلاصه مقاله:
مقاله مورد بحث به بررسی ابزار BOLT از پروژه LLVM میپردازد که با تجزیه و تحلیل دادههای پروفایلر، باینریها را پس از کامپایل بهینهسازی میکند. پرسش اصلی مقاله این است که آیا میتوان از BOLT برای افزایش سرعت پایگاه داده Postgres استفاده کرد، و پاسخ به این سوال مثبت است، اما اجرای آن پیچیدگیهایی دارد. بهینهسازی Postgres با استفاده از BOLT مستلزم درک دقیقی از نحوه تولید و استفاده از دادههای پروفایلر در محیطهای واقعی است. همچنین، تنظیمات پیکربندی خاصی لازم است تا به بهترین شکل از ظرفیتهای BOLT بهرهمند شد. تأثیرات بهینهسازی میتواند متفاوت باشد بسته به نوع کاربردها و بارهای کاری Postgres، و تجربیات اولیه نشان داده که بهبود قابل توجهی در عملکرد ممکن است. این تحقیق، در نهایت، به بررسی عمیقتر و مستمر تغییرات و تأثیرات ناشی از استفاده از BOLT در محیطهای پردازشی نیاز دارد.
🟣لینک مقاله:
https://postgresweekly.com/link/160409/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Playing with BOLT to Get a Faster Postgres
🟢 خلاصه مقاله:
مقاله مورد بحث به بررسی ابزار BOLT از پروژه LLVM میپردازد که با تجزیه و تحلیل دادههای پروفایلر، باینریها را پس از کامپایل بهینهسازی میکند. پرسش اصلی مقاله این است که آیا میتوان از BOLT برای افزایش سرعت پایگاه داده Postgres استفاده کرد، و پاسخ به این سوال مثبت است، اما اجرای آن پیچیدگیهایی دارد. بهینهسازی Postgres با استفاده از BOLT مستلزم درک دقیقی از نحوه تولید و استفاده از دادههای پروفایلر در محیطهای واقعی است. همچنین، تنظیمات پیکربندی خاصی لازم است تا به بهترین شکل از ظرفیتهای BOLT بهرهمند شد. تأثیرات بهینهسازی میتواند متفاوت باشد بسته به نوع کاربردها و بارهای کاری Postgres، و تجربیات اولیه نشان داده که بهبود قابل توجهی در عملکرد ممکن است. این تحقیق، در نهایت، به بررسی عمیقتر و مستمر تغییرات و تأثیرات ناشی از استفاده از BOLT در محیطهای پردازشی نیاز دارد.
🟣لینک مقاله:
https://postgresweekly.com/link/160409/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
🍾1
🔵 عنوان مقاله
Hierarchical Data Types in Postgres
🟢 خلاصه مقاله:
مقاله مورد نظر به بررسی نوع داده خاصی در SQL Server با نام hierarchyid پرداخته است که برای نمایش موقعیتها درون یک سلسله مراتب (مانند درخت) استفاده میشود. در حالی که در PostgreSQL میتوان از هر ستون عددی برای این منظور استفاده کرد، استفاده از ltree امکان پذیر است که گزینهای با ساختار بیشتر به شمار میرود. این نوع داده در SQL Server به کاربران اجازه میدهد تا دادههای سلسله مراتبی را به شکل کارآمدتر و سازماندهی شدهتر مدیریت کنند، در حالی که ltree در PostgreSQL به عنوان یک رویکرد متفاوت برای مدیریت سلسلهمراتب در اختیار کاربران قرار میگیرد که با استفاده از رشتههای مسیر به عنوان کلیدها عمل میکند.
🟣لینک مقاله:
https://postgresweekly.com/link/160419/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Hierarchical Data Types in Postgres
🟢 خلاصه مقاله:
مقاله مورد نظر به بررسی نوع داده خاصی در SQL Server با نام hierarchyid پرداخته است که برای نمایش موقعیتها درون یک سلسله مراتب (مانند درخت) استفاده میشود. در حالی که در PostgreSQL میتوان از هر ستون عددی برای این منظور استفاده کرد، استفاده از ltree امکان پذیر است که گزینهای با ساختار بیشتر به شمار میرود. این نوع داده در SQL Server به کاربران اجازه میدهد تا دادههای سلسله مراتبی را به شکل کارآمدتر و سازماندهی شدهتر مدیریت کنند، در حالی که ltree در PostgreSQL به عنوان یک رویکرد متفاوت برای مدیریت سلسلهمراتب در اختیار کاربران قرار میگیرد که با استفاده از رشتههای مسیر به عنوان کلیدها عمل میکند.
🟣لینک مقاله:
https://postgresweekly.com/link/160419/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
❤1👍1
👑 اگر میخوای برنامه نویس گولنگ بشی مارو دنبال کن 👇
🔹آموزش نکات مهم و کلیدی
🔹 نکات مهم طلایی در مصاحبه فنی
🔹 بروز ترین مقالات در زمینه گولنگ
🔹 هرآنچه که با گولنگ نوشته بشه
در کانال گوفر آکادمی👇👇
➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔹آموزش نکات مهم و کلیدی
🔹 نکات مهم طلایی در مصاحبه فنی
🔹 بروز ترین مقالات در زمینه گولنگ
🔹 هرآنچه که با گولنگ نوشته بشه
در کانال گوفر آکادمی👇👇
➖➖➖➖➖➖➖➖
🕊 @gopher_academy
🔥4
🔵 عنوان مقاله
Building an Image Search Engine on Postgres
🟢 خلاصه مقاله:
مقاله مورد بررسی به تکنیکی در پردازش تصاویر میپردازد که در آن از روشهای مبتنی بر بردار برای جستجو و یافتن تصاویر مشابه استفاده میشود. این فرآیند شامل گرفتن تصاویر و سپس ایجاد نمایههایی (embeddings) از آنها است. نمایهها به صورت بردارهایی هستند که میتوانند مشخصات و ویژگیهای کلیدی تصاویر را در خود جای دهند. سپس، با استفاده از نمایههای تصاویر دیگر موجود، تصاویر مشابه توسط جستجوی برداری مبتنی بر شباهت (vector similarity search) شناسایی میشوند. این تکنیک کاربردهای مهمی در زمینههایی چون تحلیل تصاویر، سیستمهای پیشنهادگر، و شناسایی محتوا در پلتفرمهای بزرگ داده ایفا میکند. تکنیک pgvector به عنوان ابزاری کارآمد برای مدیریت و جستجوی تصاویر در پایگاههای داده بزرگ مورد استفاده قرار میگیرد.
🟣لینک مقاله:
https://postgresweekly.com/link/160411/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Building an Image Search Engine on Postgres
🟢 خلاصه مقاله:
مقاله مورد بررسی به تکنیکی در پردازش تصاویر میپردازد که در آن از روشهای مبتنی بر بردار برای جستجو و یافتن تصاویر مشابه استفاده میشود. این فرآیند شامل گرفتن تصاویر و سپس ایجاد نمایههایی (embeddings) از آنها است. نمایهها به صورت بردارهایی هستند که میتوانند مشخصات و ویژگیهای کلیدی تصاویر را در خود جای دهند. سپس، با استفاده از نمایههای تصاویر دیگر موجود، تصاویر مشابه توسط جستجوی برداری مبتنی بر شباهت (vector similarity search) شناسایی میشوند. این تکنیک کاربردهای مهمی در زمینههایی چون تحلیل تصاویر، سیستمهای پیشنهادگر، و شناسایی محتوا در پلتفرمهای بزرگ داده ایفا میکند. تکنیک pgvector به عنوان ابزاری کارآمد برای مدیریت و جستجوی تصاویر در پایگاههای داده بزرگ مورد استفاده قرار میگیرد.
🟣لینک مقاله:
https://postgresweekly.com/link/160411/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
tembo.io
Building an image search engine on Postgres | Tembo
Search images with text and existing images using Postgres.
🍾1
🔵 عنوان مقاله
The 2024 State of PostgreSQL Survey is Now Open
🟢 خلاصه مقاله:
مقاله بیان میکند که نظرسنجی سالانه محبوب Timescale بار دیگر آغاز شده است. افرادی که علاقمند هستند میتوانند با مراجعه به لینک مذکور در مقاله در این نظرسنجی شرکت کنند. مهلت شرکت در نظرسنجی تا دوشنبه، 30 سپتامبر است. برای کسانی که به دنبال آمار فوری هستند، امکان مشاهده نتایج نظرسنجی سال 2023 فراهم شده است. این اطلاعات میتواند به افراد کمک کند تا درک بهتری از تغییرات و پیشرفتهایی که در جامعه Timescale روی داده است، بدست آورند و همچنین نقطه نظرات خود را در مورد سرویسها و محصولات Timescale ارائه دهند.
🟣لینک مقاله:
https://postgresweekly.com/link/159303/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
The 2024 State of PostgreSQL Survey is Now Open
🟢 خلاصه مقاله:
مقاله بیان میکند که نظرسنجی سالانه محبوب Timescale بار دیگر آغاز شده است. افرادی که علاقمند هستند میتوانند با مراجعه به لینک مذکور در مقاله در این نظرسنجی شرکت کنند. مهلت شرکت در نظرسنجی تا دوشنبه، 30 سپتامبر است. برای کسانی که به دنبال آمار فوری هستند، امکان مشاهده نتایج نظرسنجی سال 2023 فراهم شده است. این اطلاعات میتواند به افراد کمک کند تا درک بهتری از تغییرات و پیشرفتهایی که در جامعه Timescale روی داده است، بدست آورند و همچنین نقطه نظرات خود را در مورد سرویسها و محصولات Timescale ارائه دهند.
🟣لینک مقاله:
https://postgresweekly.com/link/159303/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Timescale Blog
The 2024 State of PostgreSQL Survey Is Now Open!
The 2024 State of PostgreSQL survey is now live! Help us learn more about this community, and check out last year’s main highlights.
👍1
🔵 عنوان مقاله
pg_easy_replicate Now Supports Schema Change Tracking During Logical Replication
🟢 خلاصه مقاله:
مقالهی مورد نظر به ابزاری با نام pg_easy_replicate پرداخته که تسهیلاتی در راهاندازی و اجرای تکثیر منطقی در پایگاههای داده و انجام تعویضهای سرور اصلی با حداقل زمان خاموشی ارائه میدهد. این ابزار اخیراً قابلیت ردیابی تغییرات DDL (توصیفکنندهی ساختار دادهها) را نیز به خدمات خود افزوده است. این ویژگی جدید به کاربران امکان میدهد که علاوه بر تکثیر دادهها، تغییرات ساختاری اعمال شده بر پایگاه داده را نیز به صورت خودکار ردیابی و تکثیر کنند. این تکثیر شامل تحولاتی چون ایجاد، تغییر، و حذف جداول و سایر اشیاء دادهیی میشود. کاربرد این قابلیتهای جدید میتواند به بهبود چشمگیر در مدیریت پایگاههای داده و کاهش زمانهای تعطیلی اجباری هنگام نیاز به بروزرسانیهای ساختاری کمک کند.
🟣لینک مقاله:
https://postgresweekly.com/link/159321/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pg_easy_replicate Now Supports Schema Change Tracking During Logical Replication
🟢 خلاصه مقاله:
مقالهی مورد نظر به ابزاری با نام pg_easy_replicate پرداخته که تسهیلاتی در راهاندازی و اجرای تکثیر منطقی در پایگاههای داده و انجام تعویضهای سرور اصلی با حداقل زمان خاموشی ارائه میدهد. این ابزار اخیراً قابلیت ردیابی تغییرات DDL (توصیفکنندهی ساختار دادهها) را نیز به خدمات خود افزوده است. این ویژگی جدید به کاربران امکان میدهد که علاوه بر تکثیر دادهها، تغییرات ساختاری اعمال شده بر پایگاه داده را نیز به صورت خودکار ردیابی و تکثیر کنند. این تکثیر شامل تحولاتی چون ایجاد، تغییر، و حذف جداول و سایر اشیاء دادهیی میشود. کاربرد این قابلیتهای جدید میتواند به بهبود چشمگیر در مدیریت پایگاههای داده و کاهش زمانهای تعطیلی اجباری هنگام نیاز به بروزرسانیهای ساختاری کمک کند.
🟣لینک مقاله:
https://postgresweekly.com/link/159321/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Shayon Mukherjee
pg_easy_replicate Supports Schema Change Tracking During Logical Replication
This new capability extends PostgreSQL logical replication, enabling DDL tracking and bringing more flexibility to database migrations through pg_easy_replicate
🔵 عنوان مقاله
Pigsty v3.0: An Extension-Rich Postgres Distribution
🟢 خلاصه مقاله:
مقاله مذکور به معرفی توزیع پستگرس به نام Pigsty میپردازد که با وعده «همهچیز آماده» عرضه شده است. Pigsty به عنوان یک پلتفرم مشابه RDS معرفی شده است اما با این تفاوت که کاربران میتوانند آن را به دلخواه خود مستقر کنند. یکی از ویژگیهای بارز Pigsty این است که این توزیع امکان نصب آسان 336 افزونه اضافی را فراهم میآورد. این مؤلفه به خصوص برای توسعهدهندگانی که به دنبال انعطافپذیری بیشتر و گسترش قابلیتهای پایگاه داده خود هستند، بسیار مفید است. در نتیجه، Pigsty گزینهای جذاب برای کسانی است که به دنبال یک راهحل قدرتمند و متنوع برای مدیریت دادههای خود به صورت سفارشی هستند.
🟣لینک مقاله:
https://postgresweekly.com/link/159314/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Pigsty v3.0: An Extension-Rich Postgres Distribution
🟢 خلاصه مقاله:
مقاله مذکور به معرفی توزیع پستگرس به نام Pigsty میپردازد که با وعده «همهچیز آماده» عرضه شده است. Pigsty به عنوان یک پلتفرم مشابه RDS معرفی شده است اما با این تفاوت که کاربران میتوانند آن را به دلخواه خود مستقر کنند. یکی از ویژگیهای بارز Pigsty این است که این توزیع امکان نصب آسان 336 افزونه اضافی را فراهم میآورد. این مؤلفه به خصوص برای توسعهدهندگانی که به دنبال انعطافپذیری بیشتر و گسترش قابلیتهای پایگاه داده خود هستند، بسیار مفید است. در نتیجه، Pigsty گزینهای جذاب برای کسانی است که به دنبال یک راهحل قدرتمند و متنوع برای مدیریت دادههای خود به صورت سفارشی هستند.
🟣لینک مقاله:
https://postgresweekly.com/link/159314/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
pigsty.io
Pigsty v3.0: Extension Exploding & Plugable Kernels
The 336 extension provided by Pigsty v3 & Plugable Kernels such as Babelfish, IvorySQL, and PolarDB
🔵 عنوان مقاله
PgCat 1.2: Modern Postgres Pooler and Proxy
🟢 خلاصه مقاله:
مقاله معرفی شده به بررسی ویژگیها و کاربردهای «PgCat»، یک ابزار توسعه یافته به زبان برنامهنویسی Rust، میپردازد. PgCat برای پشتیبانی از شاردینگ (تقسیم پایگاه داده به بخشهای کوچکتر برای بهبود عملکرد)، که به صورت تجربی بر اساس دستورات SQL انجام میگیرد، طراحی شده است. علاوه براین، این ابزار امکانات متعددی در زمینه تعادل بار و پشتیبانی از خرابی سیستم (failover) را فراهم میآورد. تواناییهای مذکور به کاربران امکان میدهد تا سیستمهای پایگاه دادهی خود را برای دستیابی به عملکرد بهینه و اطمینان بیشتر در دسترس بودن خدمات، به طور مؤثرتری مدیریت کنند. در نتیجه، PgCat ابزاری قدرتمند برای مدیریت پایگاههای داده در مقیاسهای بزرگ و با پیچیدگی بالا است.
🟣لینک مقاله:
https://postgresweekly.com/link/159320/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
PgCat 1.2: Modern Postgres Pooler and Proxy
🟢 خلاصه مقاله:
مقاله معرفی شده به بررسی ویژگیها و کاربردهای «PgCat»، یک ابزار توسعه یافته به زبان برنامهنویسی Rust، میپردازد. PgCat برای پشتیبانی از شاردینگ (تقسیم پایگاه داده به بخشهای کوچکتر برای بهبود عملکرد)، که به صورت تجربی بر اساس دستورات SQL انجام میگیرد، طراحی شده است. علاوه براین، این ابزار امکانات متعددی در زمینه تعادل بار و پشتیبانی از خرابی سیستم (failover) را فراهم میآورد. تواناییهای مذکور به کاربران امکان میدهد تا سیستمهای پایگاه دادهی خود را برای دستیابی به عملکرد بهینه و اطمینان بیشتر در دسترس بودن خدمات، به طور مؤثرتری مدیریت کنند. در نتیجه، PgCat ابزاری قدرتمند برای مدیریت پایگاههای داده در مقیاسهای بزرگ و با پیچیدگی بالا است.
🟣لینک مقاله:
https://postgresweekly.com/link/159320/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
GitHub
GitHub - postgresml/pgcat: PostgreSQL pooler with sharding, load balancing and failover support.
PostgreSQL pooler with sharding, load balancing and failover support. - postgresml/pgcat
🔵 عنوان مقاله
▶ SQL IN Clauses are Miles Faster in Postgres 17
🟢 خلاصه مقاله:
خلاصهی مقاله:
مقاله به بررسی پیشرفتهای ایجاد شده در PG17 برای افزایش کارآیی اسکن درختهای B هنگام استفاده از عملگر IN میپردازد. حسین از این پیشرفتها به حدی شگفتزده شده است که یک ویدئوکست تهیه کرده تا نحوه کارکرد آن را توضیح دهد، آن را با روشهای مورد استفاده در SQL Server مقایسه کند و در یک دموی زنده نمایش دهد. این ویدئوکست نه تنها به تشریح فنی میپردازد بلکه با استفاده از مثالهای عملی، کارایی بهبود یافتهی PG17 را در مقایسه با راهحلهای موجود به نمایش میگذارد. این مقاله برای کسانی که به بهینهسازی و عملکرد پایگاههای داده علاقهمند هستند، منبع ارزشمندی است.
🟣لینک مقاله:
https://postgresweekly.com/link/160517/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
▶ SQL IN Clauses are Miles Faster in Postgres 17
🟢 خلاصه مقاله:
خلاصهی مقاله:
مقاله به بررسی پیشرفتهای ایجاد شده در PG17 برای افزایش کارآیی اسکن درختهای B هنگام استفاده از عملگر IN میپردازد. حسین از این پیشرفتها به حدی شگفتزده شده است که یک ویدئوکست تهیه کرده تا نحوه کارکرد آن را توضیح دهد، آن را با روشهای مورد استفاده در SQL Server مقایسه کند و در یک دموی زنده نمایش دهد. این ویدئوکست نه تنها به تشریح فنی میپردازد بلکه با استفاده از مثالهای عملی، کارایی بهبود یافتهی PG17 را در مقایسه با راهحلهای موجود به نمایش میگذارد. این مقاله برای کسانی که به بهینهسازی و عملکرد پایگاههای داده علاقهمند هستند، منبع ارزشمندی است.
🟣لینک مقاله:
https://postgresweekly.com/link/160517/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
YouTube
SQL IN clauses are miles faster in Postgres 17
Fundamentals of Database Engineering udemy course
https://databases.win
Postgres 17 is released! and it brings amazing performance features. In this video I discuss one of those performance features specifically the BTree scan optimization with IN. So…
https://databases.win
Postgres 17 is released! and it brings amazing performance features. In this video I discuss one of those performance features specifically the BTree scan optimization with IN. So…
❤1
✍️ Farhad BagheriFarhad Bagheri
چرا تو MySQL استفاده از UUIDv4 به عنوان primary key ممکنه مناسب نباشه؟
وقتی یک رکورد جدید insert کنیم MySQL و انجین InnoDB باید تو دیسک بر اساس ترتیب primary key تو page مشخصی اضافش کنه، سر همین اگه pk ایدی عددی یا هرچیزی که ترتیب داره باشه هر رکوردی که اضافه میشه میره به انتهای تیبل ولی اگه از UUID استفاده کنیم چون رندومه هزینه بیشتری داره چون باید دنبال جای insert بگردیم و بعد اضافش کنیم و اگرم نیاز باشه بقیه row ها جابجا شن تا رکورد ما اضافه شه.
برای حل شدن این مشکل چند تا راه حل هست، مثلا اینکه بیایم از ULID یا ورژن های دیگه UUID مثل V7 استفاده کنیم که یک حالت ترتیبی با timestamp به خودشون میگیرن، یا بیایم pk رو ایدی عددی بزاریم و اون فیلدی که میخوایم uuid باشه رو ایندکس عادی بزنیم.
و یکی دیگه از بدی هاش که شاید زیاد اهمیتی نداشته باشه، هر ایندکس دیگه ای جز primary key مقدار pk رو تو خودش ذخیره میکنه، یعنی اگه یه فیلد ایندکس عادی داشته باشه و ما کوئری بزنیم اول تو اون ایندکس، pk رو پیدا میکنیم بعد بر اساس اون موقعیت row رو از ایندکس pk میگیریم و سر همین حجم secondary index ها میتونه زیاد بشه به نسبت ایدی عددی.
البته بگم که این قضیه برای هر دیتابیسی که سیستم Clustered Index رو داشته باشه صدق میکنه.
این مقاله خیلی خوب توضیح داده مشکل uuid رو:
https://lnkd.in/d7GMda5v
➖➖➖➖➖➖➖➖
👑 @Database_Academy
چرا تو MySQL استفاده از UUIDv4 به عنوان primary key ممکنه مناسب نباشه؟
وقتی یک رکورد جدید insert کنیم MySQL و انجین InnoDB باید تو دیسک بر اساس ترتیب primary key تو page مشخصی اضافش کنه، سر همین اگه pk ایدی عددی یا هرچیزی که ترتیب داره باشه هر رکوردی که اضافه میشه میره به انتهای تیبل ولی اگه از UUID استفاده کنیم چون رندومه هزینه بیشتری داره چون باید دنبال جای insert بگردیم و بعد اضافش کنیم و اگرم نیاز باشه بقیه row ها جابجا شن تا رکورد ما اضافه شه.
برای حل شدن این مشکل چند تا راه حل هست، مثلا اینکه بیایم از ULID یا ورژن های دیگه UUID مثل V7 استفاده کنیم که یک حالت ترتیبی با timestamp به خودشون میگیرن، یا بیایم pk رو ایدی عددی بزاریم و اون فیلدی که میخوایم uuid باشه رو ایندکس عادی بزنیم.
و یکی دیگه از بدی هاش که شاید زیاد اهمیتی نداشته باشه، هر ایندکس دیگه ای جز primary key مقدار pk رو تو خودش ذخیره میکنه، یعنی اگه یه فیلد ایندکس عادی داشته باشه و ما کوئری بزنیم اول تو اون ایندکس، pk رو پیدا میکنیم بعد بر اساس اون موقعیت row رو از ایندکس pk میگیریم و سر همین حجم secondary index ها میتونه زیاد بشه به نسبت ایدی عددی.
البته بگم که این قضیه برای هر دیتابیسی که سیستم Clustered Index رو داشته باشه صدق میکنه.
این مقاله خیلی خوب توضیح داده مشکل uuid رو:
https://lnkd.in/d7GMda5v
➖➖➖➖➖➖➖➖
👑 @Database_Academy
❤2👍2
زبان RSQL مخفف Restricted SQL برای فیلتر کردن دادهها در APIهای RESTful استفاده میشه
اگر نیاز به پیاده سازی فیلتر های RQL/RSQL/FIQL
در پایتون روی Django REST framework داشتید
این کتابخانه را یک نگاهی داشته باشید
https://github.com/njoyard/django-rql-filter
➖➖➖➖➖➖➖➖
👑 @Database_Academy
اگر نیاز به پیاده سازی فیلتر های RQL/RSQL/FIQL
در پایتون روی Django REST framework داشتید
این کتابخانه را یک نگاهی داشته باشید
https://github.com/njoyard/django-rql-filter
➖➖➖➖➖➖➖➖
👑 @Database_Academy
❤3👍1🍾1