ویرگول
ورودثبت نام
حسین بیگی
حسین بیگی
خواندن ۲ دقیقه·۲ سال پیش

حکایت شیخ و مریدان : Partitioning

روزی شیخ به استراحت خود می­پرداخت که مریدان بر وی درآمدند و گفتند: یا شیخ!

شیخ که چشمانش را بسته بود با آرامی اندکی باز کرد و گفت : چه شده ای مریدان!کله سحر به دیدار آمده اید!

مریدان گفتند: یا شیخ ساعت12 ظهر است!کله سحر کجا بود؟؟؟

شیخ گفت : حال بگویید ببینم چه شده است؟؟بدک نیست منبری برویم!

مریدان همی گفتند : ای شیخ جدولی داریم 1 میلیون ردیف دارد!شما که از خودی و غریبه نیستی!کوئری که میگیریم با دیگر دوستان همی به بازی حکم می­پردازیم!چه کنیم؟؟از سیستم هم که نگویم که دیگر سیاه است!

شیخ گفت:بدانید و اگاه باشید روزی بزرگی به من گفت بهترین راه کوئری زدن جدول 1 میلیون ردیفه این است که جدول 1 میلیون ردیفه را کوئری نزنی!

مریدان که با شنیدن این سخن کف از فکشان میریخت گفتند یا شیخ تسمه تایم پاره کردیم!مارا روشن کن!

شیخ فرمود : جدول را پارتیشن کنید.منظور این است!

مریدی پرسید : یا شیخ، اصلا این چیزا که میگویی یعنی چه؟؟؟

شیخ نگاهی نافذ کرد و ادامه داد: بروید و جداول بزرگ دیتابیس خود را چندین تکه کنید سپس هنگام کوئری زدن فقط با بخشی از داده ها کار میکنید نه همه آن! تازه به عنوان هدیه کلیه مسائل پارتیشن را هم خودی دیتابیس هندل میکند!دیگر چه میخواید؟؟؟

مثالی بزنم برایتان که بیا و ببین فکر کن جدولی داریم 1 میلیون رکورد دارد اگر بخواهیم برای آن Indexایجاد کنیم. کمک میکند اما معجزه که نمیکند!پس جدول را به 10 جدول کوچکتر تقسیم میکنیم و در قسمتی از جدول مشخص میکنیم که این جدول چه دارد مثلا میگوییم ردیف های این جدول از 1 تا 100000 میباشد!سپس هنگام کوئری زدن اگر ردیف 240213 (میدونم عدد رو نخوندی) را بخواهیم طبعا به جدول دوم و با Index همان جدول در ثانیه ای به آن میرسیم!بله.

البته خاطر نشان میکنم که دو نوع پارتیشن بندی داریم، عمودی و افقی!

عموی به معنای اینکه شما جدول از ستون ها تقسیم میکنی و افقی به معنای اینکه شما جدول را از ردیف ها تقسیم میکنی !

برای عمودی مثالی بزنم که قرمه سبزی وار جا بیافتد. فکر کنید جدولی داریم که ستون آخر آن به دلیل نامعلومی Blobبوده و ما در آن عکس ذخیره میکنیم(نکنید!برای مثال است به والله) حال داده ها زیاد شده و هنگام کوئری گرفتن سرور به روغن ریزی می­افتد!در صورتی که میدانیم این عکس ها آنچنان لازم نیستند جدول را به صورت عمودی پارتیشن میکنیم و داده سنگین را خارج!بدین صورت در هنگام کوئری زدن هزینه را کم کرده و عشق میکنیم!لازم باشد کوئری میزنیم و عکس را نیز میگیریم.

مریدان با شنیدن این سخنان برگ ریزان خشتک ها دریدند

و سر به آبشار نیارگار گذاشتند!

شیخحسین بیگیPartitioning
شاید از این پست‌ها خوشتان بیاید