Database Labdon – Telegram
Database Labdon
833 subscribers
33 photos
3 videos
1 file
817 links
🕸 Database Academy

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

ادمین:
@mrbardia72
Download Telegram
Forwarded from Software Engineer Labdon
🍾یه سری رودمپ بدرد بخور براتون ردیف کردم

🔻Engineering Manager
https://roadmap.sh/engineering-manager

🔻Software Design and Architecture
https://roadmap.sh/software-design-architecture

🔻System Design
https://roadmap.sh/system-design

🔻Software Architect
https://roadmap.sh/software-architect


https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
🔥3👍1
Forwarded from Software Engineer Labdon
📣 هش SHA 256 چگونه کار می‌کند؟
این وبسایت قدم به قدم فرآیند هش کردن رشته با الگوریتم Sha256 را بصورت گرافیکی نشان می‌دهد:

🔗 https://sha256algorithm.com/
🔹🔹🔹🔹🔹

https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
مفهوم Race Condition رو تا حالا شنیدی؟!
در واقع به درخواست‌های همزمانی که روی یه اندپوینت مشخص یا یه داده خاص در سیستم ما اتفاق میفته، Race Condition میگن.
این اتفاق معمولاً زمانی رخ میده که چندین درخواست همزمان بخوان روی یک داده مشترک اثر بذارن یا تغییراتی ایجاد کنن، و اگه به درستی مدیریت نشه، می‌تونه منجر به باگ‌های جدی و رفتار غیرمنتظره در سیستم بشه.

چطور Race Condition رو مدیریت کنیم؟
برای رفع این مشکل، من درخواست‌های همزمان رو به دو بخش کلی تقسیم کردم:

۱. همزمانی در لایه اپلیکیشن:
این نوع همزمانی زمانی رخ میده که چندین درخواست همزمان به یک منبع یا عملیات خاص در اپلیکیشن دسترسی پیدا کنن.

راه‌حل پیشنهادی:
از Cache::lock استفاده می‌کنیم. این روش برای ایجاد یک قفل موقت روی منابع مشترک کاربرد داره.
مثلاً با استفاده از Redis می‌تونیم مطمئن بشیم که فقط یک درخواست در یک زمان خاص اجازه دسترسی داره.

۲. همزمانی روی دیتابیس:
اینجا از قفل‌های دیتابیس استفاده می‌کنیم تا درخواست‌های همزمان رو کنترل کنیم:

FOR SHARE:
این نوع قفل وقتی استفاده میشه که فقط می‌خوایم داده رو بخونیم، ولی مطمئن بشیم کسی در همون لحظه نمی‌تونه اون رو تغییر بده.
این قفل اجازه میده درخواست‌های دیگه فقط بخونن ولی هیچ عملیات نوشتن یا دستکاری نمی‌تونه انجام بشه.

FOR UPDATE:
این قفل وقتی استفاده میشه که می‌خوایم داده رو بخونیم و تغییر بدیم.
وقتی این قفل فعال بشه، هیچ درخواست دیگه‌ای نمی‌تونه داده رو حتی بخونه یا تغییر بده تا وقتی که تراکنش فعلی کامل بشه.

با این روش‌هایی که گفتم، می‌تونیم از درخواست‌های همزمان که باعث ایجاد باگ تو پروژمون میشن جلوگیری کنیم.
یادگیری این مفاهیم نه‌تنها توی پروژه‌های واقعی خیلی به‌درد می‌خوره، بلکه می‌تونه یه سؤال کلیدی توی مصاحبه‌های شغلی باشه!


| <Saber Qadimi/>

https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
🥰4🔥1💘1
Forwarded from Future Pulse Persian
درود به همگی چند ماه پیش تصمیم گرفتم توی مواردی که خیلی باهاش سروکار دارم نمونه سوالتش رو از بعضی  سایت ها و یا استک اور فلو بهش برخوردم رو توی ریپوهای زیر جداگانه جمع آوری کنم
اگر دوس داشتید به اشتراک بزارید  و حمایت و مشارکت کنید
 


🎯- نمونه سوالات مصاحبه ای گیت
https://github.com/mrbardia72/git-Interview-Questions-And-Answers

🎯- نمونه سوالات مصاحبه ای گولنگ
https://github.com/mrbardia72/Go-Interview-Questions-And-Answers

🎯- نمونه سوالات مصاحبه ای دیتابیس
https://github.com/mrbardia72/db-Interview-Questions-and-Answers

🎯- نمونه سوالات مصاحبه ای داکر
https://github.com/mrbardia72/docker-Interview-Questions-and-Answers

🎯- نمونه سوالات مصاحبه ای والت
https://github.com/mrbardia72/vault-Interview-Questions-and-Answers

👇👇join👇👇

https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
🔥5
📌 Database Administration (DBA) Engineering Manager

📝 Type: Visa Sponsorship
🌍 Relocation Package:

🏢 Company: TradingView

📍 Location: UNITED KINGDOM

⌨️ Category: #Programming

🔗 Tags: #javanoscript #python #reactjs #typenoscript #golang #mysql #postgresql #redis #kubernetes #aws #cloud
چرا ردیس این‌قدر سریع کار می‌کنه؟
ردیس یه دیتابیس در حافظه است که سرعت خیلی بالایی داره. حالا بیاید ببینیم چرا این‌قدر سریع هست.
۱. داده‌ها تو RAM ذخیره می‌شن
اولین دلیل سرعت ردیس اینه که همه داده‌ها در حافظه RAM ذخیره می‌شن، نه روی دیسک. این یعنی وقتی یه درخواست میاد، ردیس نیازی نداره که داده‌ها رو از روی هارد دیسک بخونه، چون همه چیز داخل حافظه‌س. خواندن از RAM خیلی سریع‌تر از دیسکه. علاوه بر این، ردیس از ساختارهای داده‌ای ساده مثل hash tables، linked lists و skip lists استفاده می‌کنه که همین سادگی باعث می‌شه خیلی سریع‌تر از دیتابیس‌های دیگه عمل کنه.
۲. فقط یک رشته برای همه درخواست‌ها
حالا شاید این سوال پیش بیاد که چرا ردیس از فقط یه thread استفاده می‌کنه؟ معمولاً فکر می‌کنیم استفاده از چندین thread می‌تونه سرعت رو بیشتر کنه، اما در دیتابیس‌های دیگه، این کار باعث درگیری و کندی می‌شه، چون چند thread ممکنه با هم دسترسی به داده‌ها رو به اشتراک بذارند و قفل‌گذاری بشه. اما ردیس با استفاده از تنها یک thread این مشکل رو حل کرده و خیلی سریع‌تر عمل می‌کنه.
۳. مدیریت درخواست‌ها با I/O Multiplexing
حالا بریم سراغ یکی از بخش‌های جالب ردیس که معمولاً خیلی مورد توجه قرار نمی‌گیره، ولی درواقع دلیل اصلی سرعت بالای ردیسه: I/O Multiplexing. این تکنیک به ردیس این امکان رو می‌ده که بتونه با یه thread تعداد زیادی درخواست رو به‌طور همزمان مدیریت کنه. حالا شاید بپرسید: چطور ممکنه؟
در دیتابیس‌های معمولی، وقتی چندین درخواست به سیستم می‌رسه، معمولاً هر درخواست برای پردازش نیاز به یه thread جداگانه داره. این یعنی سیستم باید چندین thread رو به‌صورت همزمان اجرا کنه و این باعث می‌شه که هم سرعت کاهش پیدا کنه و هم مصرف منابع بیشتر بشه.
اما ردیس با استفاده از I/O Multiplexing این مشکل رو حل کرده. این تکنیک به ردیس این امکان رو می‌ده که فقط با یک thread بتونه همه درخواست‌ها رو مدیریت کنه. چطور؟ اینطور که ردیس از یه مکانیسم پیچیده برای مدیریت ورودی و خروجی (I/O) استفاده می‌کنه. وقتی درخواست‌ها به سیستم می‌رسه، ردیس به‌طور موقت اون‌ها رو نگه می‌داره و به محض اینکه منابع آزاد بشه، جواب می‌ده. به این ترتیب ردیس می‌تونه با یه thread چندین درخواست رو به‌طور همزمان پردازش کنه بدون اینکه منتظر بشه یا منابع رو قفل کنه.
این کار باعث می‌شه که ردیس از نظر سرعت و کارایی خیلی بهتر از سیستم‌هایی باشه که از چندین thread برای پردازش درخواست‌ها استفاده می‌کنن. در واقع I/O Multiplexing به ردیس این امکان رو می‌ده که به‌طور همزمان و با کمترین میزان تأخیر، چندین درخواست رو پردازش کنه و این یعنی سرعت بالا و پاسخ‌دهی سریع.
در نهایت، این تکنیک به ردیس اجازه می‌ده که در مقیاس بزرگ، حتی با تعداد زیادی درخواست هم عملکرد خودش رو حفظ کنه و به طور موثر منابع رو مدیریت کنه. این یعنی هیچ وقت ردیس از پس بار سنگین درخواست‌ها برنمیاد و همیشه سریع و کارآمد باقی می‌مونه.
در نهایت، این ویژگی‌ها باعث می‌شه که ردیس سریع‌ترین و کارآمدترین گزینه برای کار با داده‌ها باشه، به خصوص برای برنامه‌هایی که نیاز به پاسخ‌دهی سریع دارن.


<Reza Annabestani/>
https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
👍5💘1
اگه میخوای بیشتر در مورد انواع ایندکس های دیتابیس بدونی پیشنهاد میکنم این سری آموزش ویدیویی از PlanetScale رو ببین.

دیدن ش دید عمیق تری بهت میده که بهتر از ایندکس ها استفاده کنی.

لیست موضوعاتی که پوشش داده
Introduction to indexes
B+ trees
Primary keys
Secondary keys
Primary key data types
Where to add indexes
Index selectivity
Prefix indexes
Composite indexes
Covering indexes
Functional indexes
Indexing JSON columns
Indexing for wildcard searches
Fulltext indexes
Invisible indexes
Duplicate indexes
Foreign keys

https://planetscale.com/learn/courses/mysql-for-developers/indexes/introduction-to-indexes

How do Database Indexes Work?
https://planetscale.com/blog/how-do-database-indexes-work

<Hossein Nazari/>


https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
👍6
🔵 عنوان مقاله
2. Optimizing Postgres Table Layout for Maximum Efficiency

🟢 خلاصه مقاله:
مقاله‌ی مورد بررسی به اهمیت چیدمان داده‌ها در ساختارهای داده‌ای وسیع‌تر و تأثیر آن بر بهینه‌سازی در برنامه‌نویسی سطح پایین می‌پردازد و تأکید می‌کند که این مسائل می‌توانند بر جداول Postgres نیز تاثیر گذار باشند. رناتو در بررسی‌های خود نشان داد که چگونه چیدمان جدول می‌تواند هم بر کارایی ذخیره‌سازی و هم بر عملکرد پرس‌وجو تأثیر گذارد. این مطالعه به بررسی فنی می‌پردازد که چگونه تغییرات در طراحی داخلی جداول داده می‌تواند به افزایش سرعت دسترسی به داده‌ها و کاهش فضای مورد نیاز برای ذخیره‌سازی منجر شود. این اطلاعات برای توسعه‌دهندگانی که به دنبال بهبود عملکرد پایگاه داده‌های خود هستند، مفید است و می‌تواند در بهینه‌سازی عملکرد کلی سیستم‌ها مؤثر باشد.

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


👑 @Database_Academy
👍1
🔵 عنوان مقاله
3. Can Postgres Replace Redis as a Cache?

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته به مقایسه بین Redis و Postgres برای استفاده به‌عنوان سرور ذخيره‌سازی داده‌ها می‌پردازد. Redis به دلیل عملکرد بالا در ذخیره‌سازی داده‌ها در حافظه و استفاده گسترده برای کش کردن، شناخته شده است. این مقاله بررسی می‌کند که آیا می‌توان از Postgres، که یک سیستم مدیریت پایگاه داده‌های رابطه‌ای است، به جای Redis استفاده کرد. سوال اصلی مقاله این است که آیا Postgres می‌تواند برای همه کارها به کار رود و نقش Redis را در ذخیره سازی داده‌ها با عملکرد بالا و caching عهده‌دار شود. در نتیجه، مقاله تلاش می‌کند تا با بررسی تفاوت‌های عملکردی و کاربردی بین این دو سیستم، به این سوال پاسخ دهد. این بررسی به خوانندگان کمک می‌کند تا تصمیم گیری بهتری در مورد انتخاب سیستم مدیریت داده مناسب برای نیازهای خاص خود داشته باشند.

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


👑 @Database_Academy
👍21
🔵 عنوان مقاله
5. Hacking on PostgreSQL is Really Hard

🟢 خلاصه مقاله:
رابرت سال‌های متمادی در بین ده نفر برتری که به پروژه‌ی پستگرس مشارکت کرده‌اند، قرار گرفته است. اما امسال، او در مورد چالش‌هایی که فرآیند مشارکت در پستگرس می‌تواند داشته باشد، به ویژه برای افراد تازه‌کار، انعکاس داده است. رابرت بیان کرده است که با وجود تجربه و مهارت‌های فراوانش در این زمینه، هنوز هم ادامه دادن به این فرآیند می‌تواند ترسناک و دلهره‌آور باشد. این بیان از سوی رابرت می‌تواند به عنوان یک تلنگر برای جامعه پستگرس باشد تا شاید راه‌هایی برای تسهیل مشارکت افراد جدید را مدنظر قرار دهند و موانع موجود بر سر راه آن‌ها را کاهش دهند.

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


👑 @Database_Academy
👍1
🔵 عنوان مقاله
Building AI Apps on Postgres? Start with pgai

🟢 خلاصه مقاله:
مقاله‌ای که مورد بررسی قرار گرفته است در مورد پسوند PostgreSQL به نام pgai صحبت می‌کند که به امکان استفاده از جریان‌های کاری هوش مصنوعی در PostgreSQL اضافه می‌کند. این افزونه قابلیت‌هایی نظیر ایجاد تعبیه‌ها و تکمیل مدل را فراهم می‌آورد. pgai به توسعه‌دهندگان قدرت‌های فوق‌العاده‌ای در زمینه هوش مصنوعی می‌دهد و فرآیند ساخت برنامه‌هایی با قابلیت جستجو و بازیابی تقویت‌شده (RAG) را آسان‌تر می‌کند. این توانایی‌ها به توسعه‌دهندگان کمک می‌کند تا بتوانند با استفاده از قابلیت‌های پیشرفته هوش مصنوعی و یادگیری ماشین، نرم‌افزارها و سامانه‌های کاربردی را به شکل مؤثرتری طراحی کنند. به این ترتیب، pgai یک افزایش چشمگیر در توانمندسازی و بهینه‌سازی برنامه‌ها در محیط PostgreSQL به شمار می‌رود و به توسعه‌دهندگان اجازه می‌دهد تا از داده‌ها و الگوریتم‌های هوش مصنوعی به نحو احسن استفاده کنند.

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


👑 @Database_Academy
🔵 عنوان مقاله
pg_incremental: Incremental Data Processing in Postgres

🟢 خلاصه مقاله:
مارکو یک افزونه جدید Postgres را معرفی کرده است که پردازش دسته‌ای افزایشی و خودکار را برای ایجاد خطوط پردازش مطمئن فراهم می‌کند. این افزونه که در مخزن GitHub قابل دسترسی است، به کاربران امکان می‌دهد تا با استفاده از پردازش‌های دسته‌ای که به صورت افزایشی به روز می‌شوند، داده‌های خود را به طور موثر و کارآمد مدیریت کنند. این روش نه تنها به حفظ دقت و قابلیت اطمینان داده‌ها کمک می‌کند، بلکه سرعت پردازش را نیز افزایش می‌دهد و به کاهش زمان مورد نیاز برای پردازش حجم‌های بزرگ داده کمک می‌کند. افزونه‌ای که مارکو ارائه می‌دهد، ابزاری قدرتمند برای بنیان گذاران و توسعه‌دهندگانی است که به دنبال بهینه‌سازی فرآیندهای داده‌ای خود در محیط‌های پایگاه داده‌ای هستند.

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


👑 @Database_Academy
Forwarded from Future Pulse Persian
🌟 سلام دوستای عزیز! 🌟

ما توی فرنا دنبال بهتر کردن خدماتمون هستیم و نظرات ارزشمند شما خیلی کمکمون می‌کنه. 🙌
لطفاً چند دقیقه وقت بذارید و این پرسشنامه کوتاه رو تکمیل کنید:
https://survey.porsline.ir/s/0AjaP0g

ممنون از همراهیتون! 💖

#تجربه_کاربری
#بازخورد
#آموزش_آنلاین
#فرنا_آکادمی
#بهبود_خدمات
#نظرسنجی
#یادگیری_دیجیتال
#همراهی_شما
#آموزش_تخصصی
👍1
ویکی postgresql یه لیستی از anti-patternهارو لیست کرده و در موردشون توضیح داده، خوبه که لیست رو ببینید، احتمالش زیاده همین الان، در لحظه چند تا از این anti-patternهارو در حال استفاده باشید که بهتره جایگزین کنید.
مثلا NOT IN یا BETWEEN شاید استفاده ش کم نباشه تو کوئری ها.

https://wiki.postgresql.org/wiki/Don%27t_Do_This

<Hossein Nazari/>


https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
👍1
تو دیتابیس ها یه مفهومی وجود داره به اسم clustered index که در مقابلش non clustered index قرار میگیره

خب این clustered index یعنی چی؟ یعنی اینکه ترتیبی که داده ها در ایندکس قرار میگیرن، همون ترتیبی هست که داده ها در فایل و دیسک ذخیره میشن.

بنابراین هر جدول دیتابیس فقط میتونه یه clustered index داشته باشه که معمولا primary key هست.

کجا ها clustered index مهمه؟ جاهایی که شما range query یا sequential scan داری مهم میشه

چرا مهم میشه؟ چون دیتابیس با تعداد io کمتر رکوردهارو از فایل و دیسک fetch میکنه

حالا قرار دادن یه guid مثل uuid به عنوان primary key چه بلایی سر clustered index میاره؟ عملا رکوردهایی که در ایندکس دارن مرتب میشن میتونن تو فایل های مختلفی از دیسک scatter بشن و هزینه fetch کردن شون در کوئری های range رو بالا ببره.

یه سری دیتابیس ها یه سری بهبود برای این قضیه دارن، مثلا یه implicit primary key خودشون در نظر میگیرن که incremental integer هست و اون رو clustered index در نظر میگیرن.

Be careful with GUID as clustered index
https://blog.novanet.no/careful-with-guid-as-clustered-index/


<Hossein Nazari/>


https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0
👍1
🔵 عنوان مقاله
Some of My Favorite Things – Postgres Queries

🟢 خلاصه مقاله:
در این هفته خبر بزرگی از Postgres وجود ندارد، اما شاین مجموعه‌ای از پرس‌وجوهای SQL پیچیده را به عنوان هدیه‌ای جشنی معرفی می‌کند که برای ردیابی استفاده از پایگاه داده‌ها در جنبه‌های مختلف استفاده می‌شود. این پرس‌وجوها شامل بررسی ایندکس‌های بلااستفاده، تهیه گزارش‌هایی برای فرآیند vacuuming (تمیزکاری و بهینه‌سازی پایگاه داده) و موارد دیگر می‌شود. استفاده از این دستورات SQL به مدیران پایگاه داده این امکان را می‌دهد تا به شناسایی و بهینه‌سازی منابع موجود در پایگاه داده‌های خود پرداخته و با کاهش منابع بلااستفاده، بهره‌وری سیستم‌ را افزایش دهند. این ابزارها به خصوص در مدیریت و نگهداری پایگاه‌های داده بزرگ و پیچیده بسیار مفید هستند.

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


👑 @Database_Academy
🙏1
🔵 عنوان مقاله
4. pgPedia: A Postgres Encyclopedia of Sorts

🟢 خلاصه مقاله:
این متن به یک راهنمای مرجع به سبک ویکی، ولی با فرمتی تمیز و مرتب، اشاره دارد که ویژگی‌ها و تنظیمات پستگرس را پوشش می‌دهد. این راهنما به خوبی دستورالعمل‌های رسمی را تکمیل می‌کند و حتماً ارزش کاوش بیشتری دارد. از این منظر، این راهنما منبع مفیدی است برای کسانی که می‌خواهند درک عمیق‌تری از پایگاه داده پستگرس داشته باشند و می‌تواند به عنوان ابزاری مفید برای بهبود و توسعه کاربری های مختلف توسط توسعه دهندگان تلقی شود.

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


👑 @Database_Academy
Forwarded from Job Labdon
این سایت داده‌های خوبی در مورد حقوق توی شرکت‌های اروپایی توی کشورهای مختلف رو داره که میتونید ازش برای کاریابی استفاده کنید.

https://techpays.eu


https://news.1rj.ru/str/addlist/KpzXaiSpKENkMGM0