Database Labdon – Telegram
Database Labdon
835 subscribers
33 photos
3 videos
1 file
821 links
🕸 Database Academy

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

ادمین:
@mrbardia72
Download Telegram
🔵 عنوان مقاله
Postgres Type Explorer: See Data Types for Various Use Cases

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


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


👑 @Database_Academy
🔵 عنوان مقاله
PGroonga: Extend Full Text Search Features to All Languages

🟢 خلاصه مقاله:
مقاله مورد نظر به بررسی ادغام موتور جستجوی متن کامل Groonga در پایگاه داده‌ی Postgres (پستگرس) می‌پردازد. این ترکیب برای برخی سناریوهای خاص، مانند جستجو در متون ژاپنی یا چینی، عملکرد بهتری نسبت به تنظیمات پیش‌فرض پستگرس ارائه می‌دهد. از نسخه ۳.۲.۴، Groonga اکنون از پستگرس ۱۷ پشتیبانی می‌کند و امکان استفاده از این تکنولوژی را در این نسخه جدید فراهم می‌آورد. این پیشرفت می‌تواند به توسعه‌دهندگان کمک کند تا پرس و جوهای متنی پیچیده‌تر و دقیق‌تری را در پایگاه داده‌های شان اجرا نمایند، به‌ویژه در زبان‌هایی که نیازمند پردازش و تحلیل متون متفاوتی هستند.

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


👑 @Database_Academy
Forwarded from Future Pulse Persian
طلایی ترین لیست وبلاگ‌ها برنامه نویسان شرکت‌های بزرگ دنیا مثل Google و . . .
در این لیست افرادی که تجربه کار کردن در شرکت‌های بزرگ دارند اسم و لینکشون آورده شده

نفراول :
برنامه نویس شرکت TripAdvisor
هم مقالات فنی و هم مهارت نرم رو پوشش میده
https://dandreamsofcoding.com/

نفر دوم :
خالق الگوریتمی که در تمامی سیستم های recommender در شرکت بزرگ ازش استفاده میشه
https://lemire.me/blog/

نفر سوم :
از ایشون مگه بالاتر داریم ؟ CEO شرکت Stack overflow
https://www.joelonsoftware.com/

نفر چهارم :
مهندس نرمافزار گوگل و خالق چند تا از بزرگترین پروژه‌های Open Source جهان
https://latedev.wordpress.com/

نفر پنجم :
یک از تاثیر گذاران محبوبیت Linux
https://www.linux.org/forums/

نفر ششم :
برنامه نویس Google و نوسینده چند کتاب مشهور در دنیا
https://www.jeremykun.com/

نفر هفتم :
خالق Viaweb نوسینده بزرگ در حیطه برنامه نویسی
https://paulgraham.com/articles.html

نفر هقتم :
متخصص و Director شرکت Huawei
https://www.yegor256.com/

نفر هشتم :
یک متخصص به تمام معنا
https://prog21.dadgum.com/

نفر نهم :
نوسینده کتاب Clean Code
https://blog.cleancoder.com/

نفرم دهم :
مهندس گوگل
https://stevehanov.ca/blog/

نفرم یازدهم :
مهندس شرکت Uber
https://blog.pragmaticengineer.com/


👑 @labdon_academy
🔵 عنوان مقاله
Trigger Recursion and How to Deal with It

🟢 خلاصه مقاله:
خلاصه مقاله:

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

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


👑 @Database_Academy
✍️Sepehr MohseniSepehr Mohseni

داشتم یه دیتابیس MySQL رو کانفیگ میکردم گفتم بد نیست کانفیگش رو اینجا هم بذارم. روی عکس زووم کنید توضیحات هر خط هم نوشتم.

اینم لینک گیتهابش:
https://lnkd.in/ezD_xX3S
🙏2
Forwarded from Future Pulse Persian
تأثیر دانش زبان انگلیسی در دنیای برنامه‌نویسی از نگاه موسسه زبان آفاق

https://www.zoomit.ir/pr/428701-afagh-lc/


👑 @labdon_academy
😈1👻1
✍️shahriyar bayatshahriyar bayat

ماژول bloom filter در ردیس


اول بریم ببینیم ماژول bloom filter اصلا چی هست؟
ماژول Bloom Filter یک ساختار داده احتمالاتیه که برای تست عضویت در مجموعه‌ها استفاده میشه. این ساختار حافظه بسیار کمی استفاده میکنه و میتونه با دقت بالا تعیین کند که آیا یک عنصر در مجموعه وجود دارد یا خیر. ممکنه گاهی به اشتباه بگه که عنصری در مجموعه وجود داره (false positives)، ولی هیچ‌وقت به اشتباه نمی‌گوید که عنصری که در مجموعه است وجود ندارد (false negatives).

ردیس از نسخه 4.0 به بعد پشتیبانی از Bloom Filter را از طریق یک ماژول به نام RedisBloom ارائه می‌دهد. این ماژول شامل دستوراتی برای ایجاد و مدیریت Bloom Filterهاست.

چطوری کار میکنه؟
توضیح و درکش شاید یکم مشکل باشه که ایجا بصورت خلاصه مطرح بشه
اول یه bit array با اندازه ثابت که همه بیت هاش هم صفر هستند ایجاد میکنه
بعد یک سری توابع هش انتخاب میشن که مقادیر یونیک تولید میکنن
مرحله بعدی مقدار ورودی که قراره ثبت بشه اول از تابع هش رد میکنن مقدار هش شده رو روی bitarray مینویسه و مقدار اون بیت و به یک تغییر میده

برای بررسی عضویت یک عنصر، عنصر را از طریق تمام تابع‌های هش عبور میدن و موقعیت‌های bitarray را که توسط هر هش نشان داده شده‌ن، بررسی می‌کنند. اگر همه آن بیت‌ها ۱ باشند، عنصر احتمالاً در مجموعه است. اگر حتی یکی از آن‌ها صفر باشد، عنصر قطعاً
در مجموعه نیست.

مزایا و معایبش چیه؟
مزایا:
کم‌حافظه: نسبت به ساختارهای داده‌ای دیگر، فضای بسیار کمی استفاده می‌کند.
سرعت بالا: عملیات افزودن و بررسی عضویت بسیار سریع انجام می‌شود.

معایب:
احتمال خطا: ممکنه گاهی به اشتباه بگه که یک عنصر وجود دارد (false positives).
عدم حذف: به دلیل ماهیت احتمالاتی bloom filter، امکان حذف عناصر بدون ایجاد خطا وجود ندارد.

استفاده از bloom filter خیلی سادست


👑 @Database_Academy
👍1🔥1🎉1🍾1
📌 SQL Database Administrator

📝 Type: Visa Sponsorship
🌍 Relocation Package:

🏢 Company: cloudvital

📍 Location: CANADA

⌨️ Category: #Networking

🔗 Tags: #server #ha #powershell #sql
📌 Senior Database Engineer

📝 Type: Visa Sponsorship
🌍 Relocation Package:

🏢 Company: exadel

📍 Location: BULGARIA

⌨️ Category: #Programming

🔗 Tags: #python #postgresql #ai #server #git #jenkins #devops #gitlab #sql
خواهشا ردیس را به عنوان Primary Database استفاده نکنید!
یکی از جذاب‌ترین ریفکتور هایی که در اکالا انجام دادم، به ریلیز کردن ۴۰ گیگابایت رم ردیس برای استفاده در سبد خرید و سفارش‌ها مربوط میشه. در این فرآیند، موفق شدم تنها از ۴۰۰ مگابایت رم استفاده کنم!
در شروع کار، به این فکر می‌کردم که چگونه می‌توانم ۴۰ گیگابایت رم را آزاد کنم. اولین راه‌حلی که به ذهنم رسید، فشرده‌سازی داده‌ها بود. اما هیچ کامپرسوری نمی‌توانست به اندازه کافی این حجم داده را فشرده کند، و هزینه‌ی Decompress کردن آن بخاطر لود بالای سیستم، بسیار بالا بود.

هر کلید ما حاوی حدود ۱-۲ کیلوبایت JSON بود و مجبور بودیم که هر محصول را بدون TTL در Redis نگه داریم، زیرا Round Trip ما به Redis در لحظه به حدود ۳۰K می‌رسید و Redis ۴۰ گیگابایتی را مصرف می‌کرد. هیچ اپلیکیشنی نمی‌توانست این حجم Request را با منابع پایین و زمان پاسخ‌دهی ۱۰ میلی‌ثانیه انجام دهد!
در ادامه، وقتی وارد فضای حل مسئله شدم:

پاک‌سازی داده‌های اضافی: اولین قدم ما حذف کلی داده‌های غیرضروری بود که هر کلید را به حدوداً ۵۰۰ بایت تبدیل کرد.

استفاده از Protobuf: به این فکر کردم که چرا از JSON استفاده کنیم؟ با استفاده از deserializer و serializer قدرتمندی مثل Protobuf، می‌توانستیم حجم داده‌ها را به طور چشمگیری کاهش دهیم. با تبدیل داده‌ها به باینری و ذخیره آن، حجم هر کلید به حدود ۳۰۰ بایت کاهش یافت، که به معنای کاهش ۸۰ درصدی مصرف رم بود. با این حال، کیفیت و سرعت بالا در اکالا برای ما بسیار مهم بود.

شکستن کلیدها: کلیدها را به دو بخش تقسیم کردم:
اطلاعات محصول (شامل نام، بارکد، آدرس عکس و...) در یک کلید با حجم تقریباً ۲۰۰ بایت.
موجودی هر محصول در فروشگاه‌ها در کلیدی دیگر با حجم حدود ۱۰۰ بایت.
در روش قبلی، اگر یک میلیون کالا داشتیم، مصرف حدود ۲۸۶ مگابایت بود. اما در روش جدید، فرض کنیم از یک میلیون تا 2000 محصول داریم و برای یک میلیون کالا موجودی در استور های مختلف، حدود ۹۵ مگابایت مصرف می‌شد!

کش کردن محصولات: همچنین، کالاهای اضافه‌شده به سبد خرید مشتریان را به مدت ۴ روز کش کردم. به جای استفاده از Redis به عنوان Primary Database و بدون TTL، هرگاه داده‌ای نداشتیم، از منبع اصلی اطلاعات را می‌گرفتیم و دوباره به مدت ۴ روز کش می‌کردیم. اگر کاربری همان کالا را دوباره به سبد خرید اضافه می‌کرد، TTL آن به صورت Sliding افزایش می‌یافت.

در نهایت، با همین ۴۰۰ مگابایت، همه چیز به خوبی به هم رسید و ما توانستیم پرفورمنس و سرعت را بدون هیچ افت کیفیتی حفظ کنیم!

DevTwitter | <Hassan Arab borzo/>

👑 @Database_Academy
👍3👌3💯2🍾1
🔵 عنوان مقاله
Case Study of Optimizing a 'Weirdly Picked' Bad Plan

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

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


👑 @Database_Academy
🔵 عنوان مقاله
4 Ways to Create Date Bins in Postgres

🟢 خلاصه مقاله:
در این مقاله، روش‌های مختلفی برای گردآوری و تجمیع داده‌ها بر اساس دوره‌های زمانی معین (مانند ماه کامل، سه‌ماهه یا سال) در پایگاه داده Postgres بررسی می‌شود. کریستوفر بر روی چند تابع مختلف شامل INTERVAL, date_trunc, extract و to_char تمرکز کرده است. هرکدام از این توابع مزایا و معایب خاص خود را دارند. تابع INTERVAL برای تعریف بازه‌های زمانی مشخص مفید است؛ date_trunc به کاربران امکان می‌دهد تا داده‌ها را به بخش‌های زمانی منظم تقسیم کنند؛ extract برای استخراج قسمت‌های خاصی از تاریخ مانند سال یا ماه به کار می‌رود؛ و to_char امکان تبدیل تاریخ‌ها به رشته‌های نوشتاری با قالب دلخواه را فراهم می‌آورد. استفاده مناسب از این توابع بستگی به نیازهای خاص گزارش‌گیری یا تجمیع داده‌های کاربر دارد.

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


👑 @Database_Academy
This media is not supported in your browser
VIEW IN TELEGRAM
🔵 عنوان مقاله
Request-Reply in Postgres

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

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


👑 @Database_Academy
🔵 عنوان مقاله
pg_parquet: An Extension to Connect Postgres and Parquet

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

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


👑 @Database_Academy
🔵 عنوان مقاله
How to Build an Image Search App with OpenAI CLIP, Postgres, and JavaScript

🟢 خلاصه مقاله:
این مقاله آموزشی به بررسی چگونگی ادغام تکنولوژی‌ها و ایده‌های مختلف در یک پروژه می‌پردازد. از CLIP برای تبدیل تصاویر به توضیحات متنی استفاده می‌شود، به این صورت که هر تصویر را به توضیح متنی آن تبدیل می‌کند. Postgres به عنوان یک پایگاه داده برداری استفاده می‌شود که برای ذخیره‌سازی و جستجوی داده‌ها به کار می‌رود. در سمت فرانت‌اند و بک‌اند، JavaScript نقش چسبی را ایفا می‌کند که همه چیزها را به هم متصل می‌سازد؛ React در فرانت‌اند و Node.js در بک‌اند به کار گرفته شده‌اند. این مقاله به شیوه‌ای جامع تحلیل می‌کند که چگونه می‌توان ابزارها و فناوری‌های مختلف را برای ایجاد یک راه‌حل یکپارچه در حوزه‌های توسعه وب و مدیریت داده‌ها هماهنگ ساخت.

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


👑 @Database_Academy
🔵 عنوان مقاله
Postgres Version Report

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


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


👑 @Database_Academy
یه فرصت خیلی خوب برای علاقمندان به یادگیری دیتابیس PostgreSQL

اِرِن فرَنسِز (Aaron Francis) که تجربه ای نزدیک به 20 سال، با پستگرس داره و از مدرسین فعال حوزه ی لاراول هم هست، دوره Mastering Postgres رو منتشر کرده که نزدیک به 11 ساعت آموزش هست.

25 ویدیو اول این دوره رایگان هست که میتونید ازش استفاده کنید.

https://masteringpostgres.com/

DevTwitter | <Ali Salehi/>
🔵 عنوان مقاله
Speaking in Tongues: Postgres and Character Encodings

🟢 خلاصه مقاله:
موضوع رمزگذاری‌های کاراکتر می‌تواند به عنوان موضوعی حیاتی اما ناخواسته برای بسیاری از کاربران پایگاه داده‌ها باشد. با این حال، استفاده از UTF-8 می‌تواند بسیاری از مشکلات را حل کند و کاربران را به یک حالت رضایت‌بخش برساند. استفاده از UTF-8 که یک رمزگذاری جهانی برای کاراکترها است، به شما امکان می‌دهد که اطلاعات را به طور سازگار و بدون مشکلات مرتبط با تطابق یا ناسازگاری کاراکترها ذخیره و بازیابی کنید. این می‌تواند بسیاری از نگرانی‌ها را در زمینه‌های مختلف از قبیل توسعه نرم‌افزار، ذخیره‌سازی داده و تبادل اطلاعات بین سیستم‌های مختلف کاهش دهد. بنابراین، استفاده از UTF-8 نه تنها به صرفه‌جویی در زمان و منابع کمک می‌کند، بلکه اطمینان حاصل می‌کند که داده‌ها به صورت عادلانه و قابل دسترس در دسترس هستند.

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


👑 @Database_Academy