سابقه کاری
Backend Developer
I am currently serving as a backend .NET intern at dotech.fi, where I am gaining hands-on experience in backend development.
مهارتها و تکنولوژیها
مقالات و مشارکتها
راهنمای یاد گیری راحت و سریع لینوکس
اگر با لینوکس کار میکنی، احتمالاً خیلی وقتها شده که یادت بره یک دستور دقیقاً چی بود… دنیای لینوکس پر از دستوراته و قرار نیست همشو حفظ کنیم.
چطوری دیتابیس یه رکورد رو بین میلیونها رکورد پیدا میکنه؟
وقتی دیتابیس بزرگ میشه و حجم داده بالا میره، طبیعتاً سرعت بعضی Query ها هم پایین میاد و نیاز به بهینهسازی داریم. برای بهینهسازی، یا حتی انتخاب درست یک دیتابیس، لازمه یکم عمیقتر با نحوهی ذخیرهسازی و پیدا کردن داده آشنا بشیم.
وقتی جدول دیتابیس میلیاردها سطر داره، چطور فقط همون تکهای رو بخونیم که به کارمون میاد؟
دیتابیس که بزرگ میشه، فقط ایندکس کافی نیست. گاهی باید خودِ جدول رو تکهتکه کنیم تا موتور بتونه بخشهای نامربوط رو کلاً نادیده بگیره. به این میگن پارتیشنبندی. توی این صفحه، چهار روش اصلی پارتیشنبندی RANGE، LIST، HASH و KEY رو بررسی کردم و تفاوت Partitioning با Sharding رو توضیح دادم.
وقتی یک دیتابیس دیگه جوابگوی حجم دادهها یا تعداد درخواستها نیست، چطور بارِ کار رو بین چند دیتابیس مستقل تقسیم کنیم؟
وقتی یک سرور به سقف ظرفیتش میرسه، دیگه ایندکس و پارتیشنبندی هم کافی نیست. اینجاست که باید دادهها رو بین چند دیتابیس مستقل توزیع کنیم تا هر کدوم فقط بخشی از بار رو تحمل کنن. به این کار میگن شاردینگ (تقسیم افقی داده). توی این صفحه، ابتدا بررسی کردم دقیقاً چه زمانی شاردینگ منطقیه و چه زمانی زوده. بعد سه استراتژی اصلی توزیع Range، Hash و Directory رو با مثال توضیح دادم و گفتم Shard Key خوب چه ویژگیهایی داره و چرا انتخابش حیاتیترین تصمیم طراحی سیستم شارد شدهست.