مشورت ۳ - درس اتوماتا
مشورت من به کامپیوتری ها
#مشورت_3
#نگاهی_نو
«صحبت در مورد کاربرد درس نظریه زبانها و ماشینها»
((در این مشورت قراره نگاهی نو در مورد درس نظریه زبانها و ماشینها داشته باشیم. از جنگ جهانی دوم تا جنگ 8 ساله ایران و عراق تا خنثی کردن عملیاتهای تروریستی در تهران.))
🟡بخشهای این مشورت
🔹مرور هدف کانال
00:00
🔹مقدهای بر درس نظریه ماشینها
6:20
🔹آلن تورینگ و تاریخچه ساخت اولین کامپیوتر
10:10
🔹ماشین تورینگ چیست؟
25:01
🔹گریزی به درس سیستمعامل
32:45
🔹معرفی کتاب الگوریتمهایی برای زندگی
35:30
🔹جنگ و تکنولوژی
36:48
🔹معادل آلن تورینگ در ایران
39:15
🔹باگ دستگاه رمزکننده
53:30
🔹کامپایلرها
57:50
🔰مشورت کامپیوتریها
@coaching_ce
#نگاهی_نو
«صحبت در مورد کاربرد درس نظریه زبانها و ماشینها»
((در این مشورت قراره نگاهی نو در مورد درس نظریه زبانها و ماشینها داشته باشیم. از جنگ جهانی دوم تا جنگ 8 ساله ایران و عراق تا خنثی کردن عملیاتهای تروریستی در تهران.))
🟡بخشهای این مشورت
🔹مرور هدف کانال
00:00
🔹مقدهای بر درس نظریه ماشینها
6:20
🔹آلن تورینگ و تاریخچه ساخت اولین کامپیوتر
10:10
🔹ماشین تورینگ چیست؟
25:01
🔹گریزی به درس سیستمعامل
32:45
🔹معرفی کتاب الگوریتمهایی برای زندگی
35:30
🔹جنگ و تکنولوژی
36:48
🔹معادل آلن تورینگ در ایران
39:15
🔹باگ دستگاه رمزکننده
53:30
🔹کامپایلرها
57:50
🔰مشورت کامپیوتریها
@coaching_ce
❤7👍2🤡2🙏1
امروز ساعت ۱۷، لایو صوتی تلگرام داریم با موضوع بررسی مفاهیم و کاربرد درس طراحی پایگاه داده یا همون DB خودمون
با توجه به نتایج رای گیری، بخشی از چالش های هیجان انگیز دیتابیس در backend تلگرام که پاول دورف و تیم اون در این سال ها حل کرده رو با هم بررسی می کنیم
همچنین برخی از چالش های بهروز تحلیل داده در ایران و جهان و گلوگاه های دیتابیس در صنعت تحلیل داده رو واکاوی می کنیم
#اثرگذاری_با_مهندسی
#مواجهه_مسئولانه کامپیوتری ها (تیم پاول دورف) با نیاز مردم به ارتباط سریع و ایمن
🔰مشورت من به کامپیوتری ها
@coaching_ce
با توجه به نتایج رای گیری، بخشی از چالش های هیجان انگیز دیتابیس در backend تلگرام که پاول دورف و تیم اون در این سال ها حل کرده رو با هم بررسی می کنیم
همچنین برخی از چالش های بهروز تحلیل داده در ایران و جهان و گلوگاه های دیتابیس در صنعت تحلیل داده رو واکاوی می کنیم
#اثرگذاری_با_مهندسی
#مواجهه_مسئولانه کامپیوتری ها (تیم پاول دورف) با نیاز مردم به ارتباط سریع و ایمن
🔰مشورت من به کامپیوتری ها
@coaching_ce
👍2❤1🔥1
مشورت ۴ بخش اول
مشورت من به کامپیوتری ها
#مشورت_4
«دیتابیس و کاربردهای آن_قسمت اول»
((در این مشورت قراره راجع به چالشهای دیتابیس و پیچیدگی پیاده سازی اون در پیام رسانهایی مثل تلگرام صحبت کنیم.))
🟡بخشهای این مشورت:
🔹فرهنگ اوپن سورس
01:00
🔹کاربرد درس دیتابیس و اپلکیشنهایی که نیازمند دیتابیس خوب هستند
08:00
🔹کاربرد دیتابیس در instant messaging apps مانند تلگرام
14:00
🔹چالش های موجود مرتبط با دیتابیس در پیام رسان ها
19:10
🔹قدرت بالای سرچ با Elasticsearch
22:00
🔹مزایا و معایب Elasticsearch
24:30
🔹مثال های واقعی مرتبط با انواع دیتابیس
26:15
🔹مبحث caching در دیتابیس برای سرعت بخشیدن به کوئری ها
28:15
🔹بررسی سامانههایی با تعداد رکوئست بسیار بالا
37:45
🔹تخمین تعداد پیامهای رد و بدل شده در تلگرام و پاسخگویی دیتابیس
38:30
🔹ترفند نگه داری اطلاعات سین زدن و ری اکشن ها در تلگرام
46:00
🔹لود بالانسرها
1:10:00
🔹ایندکسینگ در دیتابیسها
1:24:00
🔹داستان حل مشکل انتخاب واحد توسط یک پروژه دانشجویی در دانشگاه شریف
1:30:00
🔰مشورت من به کامپیوتری ها
@coaching_ce
«دیتابیس و کاربردهای آن_قسمت اول»
((در این مشورت قراره راجع به چالشهای دیتابیس و پیچیدگی پیاده سازی اون در پیام رسانهایی مثل تلگرام صحبت کنیم.))
🟡بخشهای این مشورت:
🔹فرهنگ اوپن سورس
01:00
🔹کاربرد درس دیتابیس و اپلکیشنهایی که نیازمند دیتابیس خوب هستند
08:00
🔹کاربرد دیتابیس در instant messaging apps مانند تلگرام
14:00
🔹چالش های موجود مرتبط با دیتابیس در پیام رسان ها
19:10
🔹قدرت بالای سرچ با Elasticsearch
22:00
🔹مزایا و معایب Elasticsearch
24:30
🔹مثال های واقعی مرتبط با انواع دیتابیس
26:15
🔹مبحث caching در دیتابیس برای سرعت بخشیدن به کوئری ها
28:15
🔹بررسی سامانههایی با تعداد رکوئست بسیار بالا
37:45
🔹تخمین تعداد پیامهای رد و بدل شده در تلگرام و پاسخگویی دیتابیس
38:30
🔹ترفند نگه داری اطلاعات سین زدن و ری اکشن ها در تلگرام
46:00
🔹لود بالانسرها
1:10:00
🔹ایندکسینگ در دیتابیسها
1:24:00
🔹داستان حل مشکل انتخاب واحد توسط یک پروژه دانشجویی در دانشگاه شریف
1:30:00
🔰مشورت من به کامپیوتری ها
@coaching_ce
❤9
مشورت کامپیوتریها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
#database
#elasticsearch
توی این پست میخوایم یه اشاره ای به elasticsearch بکنیم و یکسری قابلیتهای اون رو بررسی و برای ادامه مسیر چند تا منبع معرفی کنیم.
اگه elasticsearch رو توی دسته دیتابیسها قرار بدیم میتونیم بهش بگیم یه دیتابیس NoSql هست ولی معمولا از اون به عنوان یک search engine یاد میکنند و خب دلیلش هم اینه که مهارت اصلیش توی سرچ کردن سریع و برگردوندن داده مورد نیاز در کمترین زمان ممکنه. از کاربردش بخوام بگم یه جورایی الان دیگه توی هر سایتی که یه سرچ باکسی میبینین که داره روی تعداد زیادی دیتا سرچ میزنه و نتیجه رو باسرعت براتون میاره، به احتمال زیاد اون پشت دادهها رو داره از elasticsearch واکشی میکنه.
خب حالا به نظرتون لازمه اینکه elasticsearch بتونه جستوجوی سریع داشته باشه چیه؟ آفرین. اینه که بتونه یه جوری داده رو ذخیره و ایندکسگذاری کنه که با اون نوع ذخیره سازی، با اون ساختمان داده، بتونه بالاترین سرعت واکشی داده رو داشته باشه. elasticsearch برای اینکار از Inverted Index استفاده میکنه که میتونین جزییاتش رو از این لینک بخونین. با همین روش هست که elasticsearch سرعت جستوجوی خودش رو نزدیک به realtime معرفی میکنه و خب بیراه هم نیست!
یکی از ویژگیهای elasticsearch مقیاسپذیری بالای اون و قابلیت horizontal scalability هست که باعث میشه از این ابزار توی دادهها با اسکیل بالا، به راحتی استفاده بشه و ...
برای آشنایی بیشتر میتونین این لینکها رو مطالعه کنین:
لینک ۱
لینک ۲
🔰مشورت من به کامپیوتری ها
@coaching_ce
#elasticsearch
برای ادامه تاکها نیاز هست که یکم اطلاعاتمون رو درباره دیتابیسها و فیچرهایی که هر کدوم در اختیارمون قرار میده، بالا ببریم. برای همین سعی میشه که توی چند تا پست و کامنتهای پستها، به معرفی و توضیح انواع دیتابیسها بپردازیم. پس از دستشون ندین...😉
توی این پست میخوایم یه اشاره ای به elasticsearch بکنیم و یکسری قابلیتهای اون رو بررسی و برای ادامه مسیر چند تا منبع معرفی کنیم.
اگه elasticsearch رو توی دسته دیتابیسها قرار بدیم میتونیم بهش بگیم یه دیتابیس NoSql هست ولی معمولا از اون به عنوان یک search engine یاد میکنند و خب دلیلش هم اینه که مهارت اصلیش توی سرچ کردن سریع و برگردوندن داده مورد نیاز در کمترین زمان ممکنه. از کاربردش بخوام بگم یه جورایی الان دیگه توی هر سایتی که یه سرچ باکسی میبینین که داره روی تعداد زیادی دیتا سرچ میزنه و نتیجه رو باسرعت براتون میاره، به احتمال زیاد اون پشت دادهها رو داره از elasticsearch واکشی میکنه.
خب حالا به نظرتون لازمه اینکه elasticsearch بتونه جستوجوی سریع داشته باشه چیه؟ آفرین. اینه که بتونه یه جوری داده رو ذخیره و ایندکسگذاری کنه که با اون نوع ذخیره سازی، با اون ساختمان داده، بتونه بالاترین سرعت واکشی داده رو داشته باشه. elasticsearch برای اینکار از Inverted Index استفاده میکنه که میتونین جزییاتش رو از این لینک بخونین. با همین روش هست که elasticsearch سرعت جستوجوی خودش رو نزدیک به realtime معرفی میکنه و خب بیراه هم نیست!
یکی از ویژگیهای elasticsearch مقیاسپذیری بالای اون و قابلیت horizontal scalability هست که باعث میشه از این ابزار توی دادهها با اسکیل بالا، به راحتی استفاده بشه و ...
برای آشنایی بیشتر میتونین این لینکها رو مطالعه کنین:
لینک ۱
لینک ۲
🔰مشورت من به کامپیوتری ها
@coaching_ce
Medium
What is the inverted index in elastic search?
In Elasticsearch, the inverted index is a core component that enables efficient and fast full-text search.
❤1👍1🔥1🥰1
#database
#sql
#oracle
#index
خب توی این پست میخوایم با چند تا از اصطلاحهایی که توی دیتابیسهای sql ای به گوش میخوره مخصوصا indexها(با محوریت Oracle البته)، آشنا بشیم. از موارد ساده شروع میکنیم تا ...
توی دیتابیسهای sql، ما یه table داریم که توی اون table تعدادی column با type مشخص ایجاد میشه که میتونیم دادههامون رو به صورت rowدر اون table ذخیره کنیم. این مقدمه ریز رو گفتم تا بتونیم بهتر index رو تعریف کنیم. index یه ساختمان داده آپشنال هست که اگه بخوایم، میشه روی یک یا چند ستون از جدولا تعریف کرد. ما وقتی روی یکسری ستونها، index تعریف میکنیم، میتونیم با پرفورمنس بالایی، اون دیتاها رو از دیتابیس واکشی کنیم. تعریف index زمانی برای ما مفید میشه که برای یه کاربرد خاص، تعداد درخواستهای نسبتا زیادی بر روی یکسری دادهها داریم، در این صورت میتونیم سرعت کل برنامه رو به کمک indexها افزایش بدیم.
نکته قابل توجهش اینه که تعریف index ها کاملا مستقل از داده اصلی هست و صرفا با استفاده از ساختمانداده مناسب، دسترسی به دادههای index شده رو افزایش میده. گفتم ساختماندادههای مناسب، بخوام یه اشارهای بکنم، توی Oracle یکی از ساختمان دادههایی که برای این منظور استفاده میشه، B-Tree هست. (احتمالا جزو اون درختایی بوده که توی درس ساختمانداده خوندین و با خودتون گفتین خب به چه دردی میخوره🙂) همچنین متدهای Reverse key indexes، Bitmap indexes و Function-based indexes هم در Oracle قابل استفاده هستند که برای مطالعه بیشتر میتونین به این لینک یه سر بزنین:)
یکی دیگه از دلایلی که استفاده از indexباعث افزایش سرعت واکشی میشه، اینه که باعث میشه دسترسی کمتری به بلوکهای حافظه و I/O disk داشتهباشه و این دسترسی رو به لطف همون ساختماندادهها، به حداقل میرسونه.
در آخر هم درخواست ساختن index رو صرفا برای اینکه بفهمیم چقدر سادس(!) ببینیم:
و در نهایت:)
برای اینکه اطلاعات بیشتر درباره indexها و نوعهاش و چگونگی کارکردش بدونین خوندن بخش Indexes and Index-Organized Tables از این داکیومنت که مال Oracle هست پیشنهاد میشه:)
🔰مشورت من به کامپیوتری ها
@coaching_ce
#sql
#oracle
#index
خب توی این پست میخوایم با چند تا از اصطلاحهایی که توی دیتابیسهای sql ای به گوش میخوره مخصوصا indexها(با محوریت Oracle البته)، آشنا بشیم. از موارد ساده شروع میکنیم تا ...
توی دیتابیسهای sql، ما یه table داریم که توی اون table تعدادی column با type مشخص ایجاد میشه که میتونیم دادههامون رو به صورت rowدر اون table ذخیره کنیم. این مقدمه ریز رو گفتم تا بتونیم بهتر index رو تعریف کنیم. index یه ساختمان داده آپشنال هست که اگه بخوایم، میشه روی یک یا چند ستون از جدولا تعریف کرد. ما وقتی روی یکسری ستونها، index تعریف میکنیم، میتونیم با پرفورمنس بالایی، اون دیتاها رو از دیتابیس واکشی کنیم. تعریف index زمانی برای ما مفید میشه که برای یه کاربرد خاص، تعداد درخواستهای نسبتا زیادی بر روی یکسری دادهها داریم، در این صورت میتونیم سرعت کل برنامه رو به کمک indexها افزایش بدیم.
نکته قابل توجهش اینه که تعریف index ها کاملا مستقل از داده اصلی هست و صرفا با استفاده از ساختمانداده مناسب، دسترسی به دادههای index شده رو افزایش میده. گفتم ساختماندادههای مناسب، بخوام یه اشارهای بکنم، توی Oracle یکی از ساختمان دادههایی که برای این منظور استفاده میشه، B-Tree هست. (احتمالا جزو اون درختایی بوده که توی درس ساختمانداده خوندین و با خودتون گفتین خب به چه دردی میخوره🙂) همچنین متدهای Reverse key indexes، Bitmap indexes و Function-based indexes هم در Oracle قابل استفاده هستند که برای مطالعه بیشتر میتونین به این لینک یه سر بزنین:)
یکی دیگه از دلایلی که استفاده از indexباعث افزایش سرعت واکشی میشه، اینه که باعث میشه دسترسی کمتری به بلوکهای حافظه و I/O disk داشتهباشه و این دسترسی رو به لطف همون ساختماندادهها، به حداقل میرسونه.
در آخر هم درخواست ساختن index رو صرفا برای اینکه بفهمیم چقدر سادس(!) ببینیم:
CREATE INDEX index_name
ON table_name (column1, column2, ...columnN);
و در نهایت:)
برای اینکه اطلاعات بیشتر درباره indexها و نوعهاش و چگونگی کارکردش بدونین خوندن بخش Indexes and Index-Organized Tables از این داکیومنت که مال Oracle هست پیشنهاد میشه:)
🔰مشورت من به کامپیوتری ها
@coaching_ce
🥰2🔥1
مشورت کامپیوتریها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
❗️اعداد و ارقام گفته شده در #مشورت_4 که ممکنه شما رو به فکر برو ببره..!
🔹دیتابیس تلگرام باید توان مدیریت بیش از 900 میلیون کاربر فعال ماهانه را داشته باشد.
13:25
🔹چالش دیتابیس و شیوه هندل بیش از 760.000 ریکوئست به سایت دیجیکالا در نیم ساعت اول بلکفرایدی(سیستم هایی با تعداد رکورد کم اما با تعداد ریکوئست بالا)
28:10
🔹سیستم دیتابیس سامانه های تراکنش های بانکی که گاها باید بعضی از ریکوئست ها را زیر 10ms پردازش کرده و جواب بدهند!
34:35
🔹اپلیکیشن دیوار با آمار بیش از 500.000 آگهی در روز و 19میلیون کاربر، باید بتواند به بهترین نحو ریکوئست های دیتابیس خود را مدیریت کند(سیستم هایی با تعداد رکورد و ریکوئست بالا)
37:40
🔹در زمان های بحرانی که پیامرسان ها نقش بسزایی در اطلاع رسانی دارند، دیتابیس زیر حجم تعداد بالای ریکوئست هایی اعم از زمان سین، ریاکشن و... چگونه عمل میکند؟
58:50
#دیتابیس
🔰مشورت من به کامپیوتری ها
@coaching_ce
🔹دیتابیس تلگرام باید توان مدیریت بیش از 900 میلیون کاربر فعال ماهانه را داشته باشد.
13:25
🔹چالش دیتابیس و شیوه هندل بیش از 760.000 ریکوئست به سایت دیجیکالا در نیم ساعت اول بلکفرایدی(سیستم هایی با تعداد رکورد کم اما با تعداد ریکوئست بالا)
28:10
🔹سیستم دیتابیس سامانه های تراکنش های بانکی که گاها باید بعضی از ریکوئست ها را زیر 10ms پردازش کرده و جواب بدهند!
34:35
🔹اپلیکیشن دیوار با آمار بیش از 500.000 آگهی در روز و 19میلیون کاربر، باید بتواند به بهترین نحو ریکوئست های دیتابیس خود را مدیریت کند(سیستم هایی با تعداد رکورد و ریکوئست بالا)
37:40
🔹در زمان های بحرانی که پیامرسان ها نقش بسزایی در اطلاع رسانی دارند، دیتابیس زیر حجم تعداد بالای ریکوئست هایی اعم از زمان سین، ریاکشن و... چگونه عمل میکند؟
58:50
#دیتابیس
🔰مشورت من به کامپیوتری ها
@coaching_ce
🔥1
مشورت کامپیوتریها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
#مشورت_4
#database
#partitioning
🔷بریم سراغ یکی از قابلیتهای دیتابیسها که تو حجم بالای داده، خیلی به دردمون میخوره. پارتیشنینگ.
پارتیشنینگ میاد برامون جدولها و ایندکس های خیلی بزرگ رو میشکنه به قسمتهای کوچیکتر تا بتونیم مدیریت بهتری روشون داشته باشیم و کارایی رو ببریم بالا.
با یه مثال ادامه بدیم. فرض کنین مدیر یه کتابخونه هستین و تعداد زیاااادی کتاب زیر دستتون هست که باید با سرعت بالایی کتاب مورد نظرتون رو پیدا کنین و بدین به درخواست کننده. خب برای این کار یکی از راههاش اینه که یه قفسه بزررررگ داشته باشین که همه کتابها توی اون قفسه باشه و هر بار که میخواین یه کتابی رو پیدا کنین از اول تا آخر بگردین که بتونین اون کتاب رو پیدا کنین و برش دارین. ولی خب همونطور که دیدین هیچ کتابدار عاقلی این حرکت رو نمیزنه!:) یکی از راههایی که میتونیم این کار رو به صورت بهینه تر انجام بدیم و بهمون کمک میکنه که بتونیم مدیریت بهتری روی کتابها داشته باشیم، اینه که بیایم اون قفسه بزررررگ رو به قفسههای کوچکتری بشکنیم و توی هر قفسه یه سری کتاب خاص رو قرار بدیم که وقتی نیاز داشتیم به اون نوع کتابهای خاص بدونیم باید بریم سراغ کدوم قفسه. مثلا بیایم کتابها رو بر اساس سال چاپ بذاریم توی قفسههای مختلف. یا اینکه بر اساس موضوع بذاریم توی قفسههای مختلف یا ... . به این کار کتابدار توی دیتابیس میگن پارتیشنینگ. حالا همین چطوری جدا کردن این قفسهها خودش میتونه روشهای مختلفی داشته باشه که باعث میشه پارتیشنینگهای مختلفی داشته باشیم:
Range Partitioning
Interval Partitioning
List Partitioning
Hash Partitioning
Refrence Partitioning
Composite Partitioning
قبل از اینکه این موارد رو یه توضیح مختصری بدیم نیازه که با Partition Key آشنا بشیم. Partition Key یک یا مجموعهای از ستونها هست که با توجه به اون ها تصمیم گرفته میشه که یه ردیف از داده، توی کدوم پارتیشن قرار بگیره. هر ردیف داده، به صورت یکتا توی یک پارتیشن قرار میگیره.
🔰مشورت من به کامپیوتری ها
@coaching_ce
#database
#partitioning
🔷بریم سراغ یکی از قابلیتهای دیتابیسها که تو حجم بالای داده، خیلی به دردمون میخوره. پارتیشنینگ.
پارتیشنینگ میاد برامون جدولها و ایندکس های خیلی بزرگ رو میشکنه به قسمتهای کوچیکتر تا بتونیم مدیریت بهتری روشون داشته باشیم و کارایی رو ببریم بالا.
با یه مثال ادامه بدیم. فرض کنین مدیر یه کتابخونه هستین و تعداد زیاااادی کتاب زیر دستتون هست که باید با سرعت بالایی کتاب مورد نظرتون رو پیدا کنین و بدین به درخواست کننده. خب برای این کار یکی از راههاش اینه که یه قفسه بزررررگ داشته باشین که همه کتابها توی اون قفسه باشه و هر بار که میخواین یه کتابی رو پیدا کنین از اول تا آخر بگردین که بتونین اون کتاب رو پیدا کنین و برش دارین. ولی خب همونطور که دیدین هیچ کتابدار عاقلی این حرکت رو نمیزنه!:) یکی از راههایی که میتونیم این کار رو به صورت بهینه تر انجام بدیم و بهمون کمک میکنه که بتونیم مدیریت بهتری روی کتابها داشته باشیم، اینه که بیایم اون قفسه بزررررگ رو به قفسههای کوچکتری بشکنیم و توی هر قفسه یه سری کتاب خاص رو قرار بدیم که وقتی نیاز داشتیم به اون نوع کتابهای خاص بدونیم باید بریم سراغ کدوم قفسه. مثلا بیایم کتابها رو بر اساس سال چاپ بذاریم توی قفسههای مختلف. یا اینکه بر اساس موضوع بذاریم توی قفسههای مختلف یا ... . به این کار کتابدار توی دیتابیس میگن پارتیشنینگ. حالا همین چطوری جدا کردن این قفسهها خودش میتونه روشهای مختلفی داشته باشه که باعث میشه پارتیشنینگهای مختلفی داشته باشیم:
Range Partitioning
Interval Partitioning
List Partitioning
Hash Partitioning
Refrence Partitioning
Composite Partitioning
قبل از اینکه این موارد رو یه توضیح مختصری بدیم نیازه که با Partition Key آشنا بشیم. Partition Key یک یا مجموعهای از ستونها هست که با توجه به اون ها تصمیم گرفته میشه که یه ردیف از داده، توی کدوم پارتیشن قرار بگیره. هر ردیف داده، به صورت یکتا توی یک پارتیشن قرار میگیره.
🔰مشورت من به کامپیوتری ها
@coaching_ce
👍2
مشورت کامپیوتریها
مشورت من به کامپیوتری ها – مشورت ۴ بخش اول
#مشورت_4
#database
#partitioning
🔷خب بریم سراغ این انواع پارتیشنها:
Range Partitioning:
توی این دسته، دیتابیس ردیفهای داده رو بر اساس یه رنجی از مقدار Partitioning Key به پارتیشنها میده که ذخیره کنند. این دسته معمولا بر اساس تاریخ و زمان هست. مثلا پارتیشنینگ بر اساس سال ایجاد اون سطر داده، انجام بشه و همه دادههای سال ۲۰۲۰ توی یه پارتیشن و ۲۰۲۱ توی یه پارتیشن و ... باشه.
Interval Partitioning:
این مدل از پارتیشنینگ، یه اکستنشن از Range Partitioning هست که ما رو از مشخص کردن دقیق رنج پارتیشنها معاف میکنه. یعنی نیاز نیست که حتما همه رینجهایی که نیاز داریم رو تعریف کنیم، بلکه با تعریف یکسری Range و یک Interval، در صورتی که داده مورد نظر، توی اون Range نبود، دیتابیس خودش بر اساس اون Interval، یک پارتیشن ایجاد میکنه و داده رو در اون قرار میده.
List Partitioning:
توی این دسته، برای هر پارتیشن، یک لیستی از مقادیر برای هر پارتیشن، مشخص میشه که بر اساس مقدار Partitioning Key دادهها، در اون پارتیشن قرار میگیره یا نه. مثلا میتونیم بگیم نوع محصولات خوراکی رو بریز توی یه پارتیشن و نوع محصول پوشیدنی رو بریز توی یه پارتیشن دیگه.
Hash Partitioning:
توی این دسته، دیتابیس به کمک یک تابع Hash داخلی، تصمیم میگیره که داده رو بین پارتیشنها تقسیم کنه. تو این مورد ما نمیتونیم بگیم که کدوم دادهها رو توی کدوم پارتیشنها ذخیره کن بلکه فقط میگیم که دادهها رو توی چند تا پارتیشن قرار بده. دیگه دیتابیس خودش میدونه و مقدار خروجی تابع Hashش.:)
Refrence Partitioning:
این روش Partitioning داره میگه که هر استراتژیای که برای ذخیره جدولهای parrent توی دیتابیس هست، توسط جدولهای child هم برقرار باشه. مثلا فررض کنین یک جدول Student داشته باشیم و یک جدول Code که کد های دانشجوها توش نگهداری میشه به این صورت که هر سطر داده در جدول Code یک Student_id به عنوان کلید خارجی داره و نشوندهنده این هست که هر کد مال کدوم دانشجو هست. در این صورت هر ردیف داده در جدول Code در همون پارتیشنی ذخیره میشه که داده متانظر Student_id ش ذخیره شده. این کار باعث میشه که پرفورمنس جوین بین جداول بالا بره.
Composite Partitioning:
این دسته، شامل ترکیبی از انواع پارتیشنینگ که تا حالا باهاشون آشنا شدیم، میشه. به این صورت که میتونیم بعد از تعریف یه Partitioning خاص برای جدول، برای هر پارتیشن یک Subpartition هم تعریف کنیم. مثلا متد Composite Hash-Range Partitioning میتونه Subpartitionهای خودش رو را با Hash Partitioning از پارتیشنهای ایجاد شده توسط Range Partitioning، ایجاد کنه.
و در آخر برای ادامه بازم لینک و داکیومنت جذاب و قشنگ...:)
میتونین برای آشنایی بیشتر با این مبحث، این لینک رو مطالعه کنین.
🔰مشورت من به کامپیوتری ها
@coaching_ce
#database
#partitioning
🔷خب بریم سراغ این انواع پارتیشنها:
Range Partitioning:
توی این دسته، دیتابیس ردیفهای داده رو بر اساس یه رنجی از مقدار Partitioning Key به پارتیشنها میده که ذخیره کنند. این دسته معمولا بر اساس تاریخ و زمان هست. مثلا پارتیشنینگ بر اساس سال ایجاد اون سطر داده، انجام بشه و همه دادههای سال ۲۰۲۰ توی یه پارتیشن و ۲۰۲۱ توی یه پارتیشن و ... باشه.
Interval Partitioning:
این مدل از پارتیشنینگ، یه اکستنشن از Range Partitioning هست که ما رو از مشخص کردن دقیق رنج پارتیشنها معاف میکنه. یعنی نیاز نیست که حتما همه رینجهایی که نیاز داریم رو تعریف کنیم، بلکه با تعریف یکسری Range و یک Interval، در صورتی که داده مورد نظر، توی اون Range نبود، دیتابیس خودش بر اساس اون Interval، یک پارتیشن ایجاد میکنه و داده رو در اون قرار میده.
List Partitioning:
توی این دسته، برای هر پارتیشن، یک لیستی از مقادیر برای هر پارتیشن، مشخص میشه که بر اساس مقدار Partitioning Key دادهها، در اون پارتیشن قرار میگیره یا نه. مثلا میتونیم بگیم نوع محصولات خوراکی رو بریز توی یه پارتیشن و نوع محصول پوشیدنی رو بریز توی یه پارتیشن دیگه.
Hash Partitioning:
توی این دسته، دیتابیس به کمک یک تابع Hash داخلی، تصمیم میگیره که داده رو بین پارتیشنها تقسیم کنه. تو این مورد ما نمیتونیم بگیم که کدوم دادهها رو توی کدوم پارتیشنها ذخیره کن بلکه فقط میگیم که دادهها رو توی چند تا پارتیشن قرار بده. دیگه دیتابیس خودش میدونه و مقدار خروجی تابع Hashش.:)
Refrence Partitioning:
این روش Partitioning داره میگه که هر استراتژیای که برای ذخیره جدولهای parrent توی دیتابیس هست، توسط جدولهای child هم برقرار باشه. مثلا فررض کنین یک جدول Student داشته باشیم و یک جدول Code که کد های دانشجوها توش نگهداری میشه به این صورت که هر سطر داده در جدول Code یک Student_id به عنوان کلید خارجی داره و نشوندهنده این هست که هر کد مال کدوم دانشجو هست. در این صورت هر ردیف داده در جدول Code در همون پارتیشنی ذخیره میشه که داده متانظر Student_id ش ذخیره شده. این کار باعث میشه که پرفورمنس جوین بین جداول بالا بره.
Composite Partitioning:
این دسته، شامل ترکیبی از انواع پارتیشنینگ که تا حالا باهاشون آشنا شدیم، میشه. به این صورت که میتونیم بعد از تعریف یه Partitioning خاص برای جدول، برای هر پارتیشن یک Subpartition هم تعریف کنیم. مثلا متد Composite Hash-Range Partitioning میتونه Subpartitionهای خودش رو را با Hash Partitioning از پارتیشنهای ایجاد شده توسط Range Partitioning، ایجاد کنه.
و در آخر برای ادامه بازم لینک و داکیومنت جذاب و قشنگ...:)
میتونین برای آشنایی بیشتر با این مبحث، این لینک رو مطالعه کنین.
🔰مشورت من به کامپیوتری ها
@coaching_ce
❤3
مشورت کامپیوتریها
https://news.1rj.ru/str/peymanfakharian/198
((در این پادکست شنونده گفتوگو پیمان فخاریان و سینا عطاران هستیم. سینا عطاران از اولینهای یکتانت هست که کار خودش رو به عنوان مهندسی نرم افزار شروع کرده و در حال حاضر به عنوان مدیر مهندسی یکتانت و مدیر فنی نجوا مشغول فعالیته. داخل این پادکست در مورد چالش ساختن تیمها با عملکرد بالا صحبت شده.))
🟡بخشهای این پادکست:
🔷ساختن تیمهای تک با عملکرد بالا در ایران دقیقا چیه؟
01:50
🔷آیا برای تیم هدف مشخص شده؟
03:30
🔷چه کسی هدف گذاری را انجام میدهد؟
12:40
🔷تیمهای کراس فانکشنال
19:05
🔷داستان آزادی عمل زیاد به تیم دادن و نتیجه منفی اون
34:57
🔷پارامترهای انگیزه داشتن آدمها
46:55
🔷چالش سیستمCtr Predictor
53:17
🔷نقش لیدرها در عملکرد تیم
61:19
🔷چگونگی تعامل بین EM و PM
66:02
🔷آیا شده با حذف رول EM عملکرد تیم افزایش پیدا کنه؟
78:25
🔷ساختن تیم جونیور که دانشجو هستند
86:37
🔰مشورت کامپیوتری ها
@coaching_ce
🟡بخشهای این پادکست:
🔷ساختن تیمهای تک با عملکرد بالا در ایران دقیقا چیه؟
01:50
🔷آیا برای تیم هدف مشخص شده؟
03:30
🔷چه کسی هدف گذاری را انجام میدهد؟
12:40
🔷تیمهای کراس فانکشنال
19:05
🔷داستان آزادی عمل زیاد به تیم دادن و نتیجه منفی اون
34:57
🔷پارامترهای انگیزه داشتن آدمها
46:55
🔷چالش سیستمCtr Predictor
53:17
🔷نقش لیدرها در عملکرد تیم
61:19
🔷چگونگی تعامل بین EM و PM
66:02
🔷آیا شده با حذف رول EM عملکرد تیم افزایش پیدا کنه؟
78:25
🔷ساختن تیم جونیور که دانشجو هستند
86:37
🔰مشورت کامپیوتری ها
@coaching_ce
❤3👍1