Database Labdon
797 subscribers
33 photos
2 videos
1 file
727 links
🕸 Database Academy

حمایت مالی:
https://www.coffeete.ir/mrbardia72

ادمین:
@mrbardia72
Download Telegram
📌 Database Administration (DBA) Engineering Manager

📝 Type: Visa Sponsorship
🌍 Relocation Package:

🏢 Company: TradingView

📍 Location: UNITED KINGDOM

⌨️ Category: #Programming

🔗 Tags: #javascript #python #reactjs #typescript #golang #mysql #postgresql #redis #kubernetes #aws #cloud
🔵 عنوان مقاله
a visual explainer of processes and threads

🟢 خلاصه مقاله:
** این مقاله با یک توضیح تصویری، تفاوت‌های بنیادین بین فرآیند و رشته را توضیح می‌دهد: فرآیندها فضای حافظه‌ای جدا دارند و ارتباطشان از طریق مکانیزم‌های سیستم‌عامل انجام می‌شود، در حالی‌که رشته‌ها داخل یک فرآیند حافظه مشترک دارند، ارتباطشان سریع‌تر است اما ریسک تداخل و خرابی گسترده‌تر می‌شود. سپس این دیدگاه به معماری پایگاه‌های داده تعمیم داده می‌شود: Postgres از مدل process-per-connection با فرآیندهای جداگانه برای هر اتصال و حافظه مشترک برای هماهنگی استفاده می‌کند؛ MySQL در یک mysqld واحد با مدل thread-per-connection (یا thread pool) و رشته‌های متعدد اجرا می‌شود. نتیجه مقایسه: Postgres ایزولاسیون قوی‌تری در سطح حافظه دارد اما سربار هر اتصال بیشتر است و خرابی یک backend می‌تواند به بازراه‌اندازی برای حفظ سازگاری منجر شود؛ MySQL از نظر حافظه برای اتصالات زیاد بهینه‌تر و تعویض متن در آن سریع‌تر است، ولی خطا یا ازدحام در یک رشته می‌تواند کل فرایند را متاثر کند و نیازمند تنظیم دقیق برای جلوگیری از رقابت قفل‌هاست. در عمل، هر دو با ابزارهای connection pooling مانند PgBouncer و ProxySQL افراط‌ها را تعدیل می‌کنند و انتخاب نهایی به اولویت‌های بارکاری بین ایزولاسیون/قابلیت مشاهده در برابر بازده و مقیاس‌پذیری اتصال بستگی دارد.

#OperatingSystems #Concurrency #Postgres #MySQL #DatabaseArchitecture #Threads #Processes #Performance

🟣لینک مقاله:
https://postgresweekly.com/link/174753/web


👑 @Database_Academy
🔵 عنوان مقاله
ChartDB (Tool)

🟢 خلاصه مقاله:
ChartDB ابزاری برای تبدیل سریع schema پایگاه‌داده به ER diagram است که با ویرایش هوشمند مبتنی بر AI، همکاری هم‌زمان و همگام‌سازی خودکار با دیتابیس زنده، کار تیم‌های مهندسی را ساده می‌کند. از Postgres، MySQL، SQL Server و Oracle پشتیبانی می‌کند، DDL تمیز تولید می‌کند و مستندات قابل اشتراک‌گذاری با نسخه‌بندی ارائه می‌دهد تا مدل‌ها و مستندات همیشه به‌روز و قابل پیگیری بمانند.

#DatabaseDesign #ERD #DataModeling #AI #DevTools #Postgres #MySQL #SQLServer

🟣لینک مقاله:
https://chartdb.io/?utm_source=tldrdata


👑 @Database_Academy
🔵 عنوان مقاله
A SQL Heuristic: ORs Are Expensive (10 minute read)

🟢 خلاصه مقاله:
OR در SQL اغلب باعث کندی می‌شود، چون بسیاری از query plannerها برای OR بین ستون‌های مختلف به sequential scan یا index merge/bitmap OR متوسل می‌شوند، در حالی‌که AND به‌طور طبیعی با compound indexها جور است. یک راه مؤثر، بازنویسی OR به چند کوئریِ ایندکس‌پسند و ترکیب آن‌ها با UNION/UNION ALL است تا هر شاخه از ایندکس مناسب خود استفاده کند و زمان اجرا گاهی تا ۱۰۰ برابر کاهش یابد. راه‌حل پایدارتر، بازطراحی schema با extension tables است تا به‌جای OR روی چند خاصیتِ پراکنده، با JOIN به جدول‌های باریک و ایندکس‌شده دسترسی پیدا کنید. همیشه با EXPLAIN/EXPLAIN ANALYZE اندازه‌گیری کنید؛ در جداول کوچک یا OR روی یک ستون (مشابه IN) شاید مشکل نداشته باشید، اما به‌طور کلی: AND را با compound index هماهنگ کنید، از OR بین ستون‌ها بپرهیزید، در صورت لزوم از UNION بهره ببرید و برای مسیرهای پرتردد، بازطراحی schema را در نظر بگیرید.

#SQL #DatabasePerformance #QueryOptimization #Indexes #PostgreSQL #MySQL #DataModeling #EXPLAIN

🟣لینک مقاله:
https://ethanseal.com/articles/ors-are-expensive?utm_source=tldrdata


👑 @Database_Academy
🔵 عنوان مقاله
How to Do UPDATE ... LIMIT

🟢 خلاصه مقاله:
در Postgres نمی‌توان مستقیم از UPDATE ... LIMIT یا DELETE ... LIMIT استفاده کرد؛ هرچند در برخی لهجه‌های SQL مثل MySQL این امکان وجود دارد. راه‌حل استاندارد این است که ابتدا در یک زیرکوئری یا CTE با ORDER BY و LIMIT، شناسهٔ ردیف‌های هدف را انتخاب کنید و سپس با UPDATE/DELETE روی همان شناسه‌ها عمل کنید. برای محیط‌های همزمان، استفاده از SELECT ... FOR UPDATE SKIP LOCKED در زیرکوئری باعث می‌شود هر پردازش فقط ردیف‌های قفل‌نشده را بردارد و تداخل رخ ندهد. حتماً ORDER BY بگذارید تا انتخاب N ردیف قابل پیش‌بینی باشد و برای کارایی، ایندکس مناسب روی فیلترها و مرتب‌سازی‌ها داشته باشید. در حجم‌های بزرگ، عملیات را به صورت batch تکراری انجام دهید تا از تراکنش‌های طولانی و فشار روی سیستم جلوگیری شود.

#Postgres #SQL #UPDATE #DELETE #LIMIT #CTE #SkipLocked #MySQL

🟣لینک مقاله:
https://postgresweekly.com/link/175093/web


👑 @Database_Academy
🔵 عنوان مقاله
results of its latest State of Developer Ecosystem Report

🟢 خلاصه مقاله:
گزارش جدید State of Developer Ecosystem از JetBrains نشان می‌دهد که برای نخستین بار، Postgres از MySQL در اکوسیستم JetBrains محبوب‌تر شده است. این تغییر حاکی از جابه‌جایی ترجیحات توسعه‌دهندگان به سمت قابلیت‌ها و انعطاف‌پذیری Postgres است؛ هرچند MySQL همچنان در بسیاری از محیط‌های وب و پروژه‌های قدیمی نقش پررنگی دارد. ابزارها و ادغام‌های اکوسیستم JetBrains و گسترش سرویس‌های ابری مدیریت‌شده نیز می‌تواند در این روند مؤثر بوده باشد و نشان می‌دهد انتخاب پایگاه‌داده بیش از پیش بر اساس تناسب با نیاز هر پروژه انجام می‌شود.

#JetBrains #Postgres #MySQL #DeveloperEcosystem #Database #StateOfDeveloperEcosystem #SoftwareTrends

🟣لینک مقاله:
https://postgresweekly.com/link/175719/web


👑 @Database_Academy
🔵 عنوان مقاله
PlanetScale for Postgres is Now GA

🟢 خلاصه مقاله:
PlanetScale اعلام کرد که PlanetScale for Postgres به مرحله GA رسیده و اکنون برای همه کاربران در دسترس است. این حرکت پس از آن انجام شد که شرکت در ماه جولای ورود خود به فضای PG را اعلام کرد و مجموعه‌ای از بنچمارک‌ها را منتشر نمود. این سرویس تا امروز در فاز private preview بود و اکنون برای استفاده در محیط‌های تولیدی آماده اعلام شده است. به این ترتیب، تیم‌هایی که بر Postgres تکیه دارند می‌توانند از پیشنهاد جدید PlanetScale استفاده کرده و آن را در مقیاس عملیاتی امتحان کنند.

#PlanetScale #Postgres #PG #Database #Cloud #GA #MySQL #DevOps

🟣لینک مقاله:
https://postgresweekly.com/link/174747/web


👑 @Database_Academy
🔵 عنوان مقاله
be careful when you do minor version upgrades

🟢 خلاصه مقاله:
** ارتقای نسخه‌های به‌ظاهر «جزئی» می‌تواند در سیستم‌های مبتنی بر Debian پیامدهای بزرگی داشته باشد. به‌روزرسانی نقطه‌ای Debian ممکن است کتابخانه‌های مرتبط با locale و collation را تغییر دهد و پایگاه داده شما را به به‌روزرسانی collation وادار کند؛ نتیجه می‌تواند بازسازی نمایه‌ها، تغییر ترتیب مرتب‌سازی متن، افت کارایی و حتی اختلال در سرویس باشد. این وضعیت معمولاً با apt upgrade یا unattended-upgrades و همچنین تصاویر کانتینری با برچسب‌های غیرثابت رخ می‌دهد. برای کاهش ریسک، همان نسخه را در staging تست کنید، بسته‌ها را pin/hold کنید، یادداشت‌های انتشار Debian و پایگاه داده را بخوانید، پنجره نگه‌داری در نظر بگیرید، پشتیبان مطمئن بگیرید و قبل/بعد از ارتقا وضعیت collation را بررسی کنید. «ارتقای جزئی» را نیز مانند ارتقای عمده جدی بگیرید تا از تغییر ناخواسته collation جلوگیری شود.

#Debian #Database #Collation #PostgreSQL #MySQL #Apt #Upgrade #DevOps

🟣لینک مقاله:
https://postgresweekly.com/link/177311/web


👑 @Database_Academy