داده ها همه چیز است و با پسوند ، پایگاه داده ها نیز وجود دارند. در اینجا چندین گزینه منبع باز فوق العاده برای پروژه بعدی kick-ass شما ارائه شده است.


به نظر می رسد اکنون در دنیایی که این مدت طولانی در لباس های پایگاه داده مانند Oracle و SQL Server مسلط باشد ، راه حل های بی پایان وجود دارد. یک بخش از دلایل آن نوآوری است که توسط منبع آزاد ایجاد می شود – توسعه دهندگان با استعدادی که مایل به خارش و ایجاد چیزی هستند که بتوانند در آن لذت ببرند.

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

نتیجه?

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

می دانم ، این مرا نیز می ترساند. گزینه های بسیار زیادی – مستندات بیش از حد برای گذراندن – و زندگی بسیار کوتاه است. ��

به همین دلیل تصمیم گرفتم این مقاله را بنویسم ، ده بهترین از پایگاه داده ای که می توانید برای بهبود راه حل های خود استفاده کنید ، اعم از ساختن برای خود یا دیگران.

بدون MySQL

لطفاً توجه داشته باشید: این لیست حاوی MySQL نیست ، حتی اگر محبوب ترین راه حل پایگاه داده منبع باز در آنجا باشد.

چرا؟ فقط به این دلیل که MySQL در همه جا وجود دارد – این همان چیزی است که همه در ابتدا یاد می گیرند ، تقریبا توسط هر CMS یا فریم ورک در آنجا پشتیبانی می شود ، و برای اکثر موارد استفاده بسیار خوب است. به عبارت دیگر ، نیازی به MySQL “کشف” نیست. ��

این گفته ، لطفاً توجه داشته باشید که موارد زیر الزاماً جایگزین MySQL نیستند. در بعضی موارد ، ممکن است آنها باشند ، در حالی که در برخی دیگر برای یک نیاز کاملاً متفاوت یک راه حل کاملاً متفاوت هستند. نگران نباشید ، زیرا من همچنین در مورد کاربردهای آنها بحث خواهم کرد.

توجه ویژه: سازگاری

قبل از شروع ، باید این نکته را نیز ذکر کنم که سازگاری چیزی است که شما باید در خاطر داشته باشید. اگر پروژه ای دارید که به هر دلیلی فقط از یک موتور پایگاه داده خاص پشتیبانی می کند ، انتخاب های شما تقریباً از بین می رود.

به عنوان مثال ، اگر WordPress را اجرا می کنید ، این مقاله برای شما فایده ای ندارد. �� به طور مشابه ، آن دسته از سایتهای استاتیک در JAMStack که با جستجوی گزینه های بیش از حد جدی می توانند ، هیچ چیزی کسب نکنند.

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

PostgreSQL

اگر اهل سرزمین PHP (وردپرس ، مگنتو ، دروپال و غیره) هستید ، پس از آن PostgreSQL برای شما خارجی به نظر می رسد با این حال ، این راه حل پایگاه داده رابطه ای از سال 1997 وجود دارد و بهترین انتخاب در جوامعی مانند روبی ، پایتون ، برو و غیره است..

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

تعداد زیادی مشتری خوب SQL برای اتصال به پایگاه داده PostgreSQL برای مدیریت و توسعه وجود دارد.

ویژگی های منحصر به فرد

PostgreSQL در مقایسه با سایر پایگاههای داده رابطه (بطور خاص MySQL) چندین ویژگی جذاب دارد ، مانند:

  • انواع داده داخلی برای Array ، Range ، UUID ، Geolocation و غیره ساخته شده است.
  • پشتیبانی بومی برای ذخیره سازی اسناد (سبک JSON) ، XML و ذخیره سازی ارزش کلیدی (Hstore)
  • همانندسازی همزمان و ناهمزمان
  • قابل توصیف در PL ، Perl ، Python و موارد دیگر
  • جستجوی متن کامل

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

چه زمانی باید از PostgreSQL استفاده کنیم

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

اگر برای یک مدل داده ترکیبی نیاز به امکانات جزئی NoSQL دارید ، PostgreSQL نیز دارای مزیت مشخصی است. از آنجا که از اسناد و ذخیره سازی ارزش اصلی بومی پشتیبانی می شوند ، دیگر نیازی به شکار ، نصب ، یادگیری و راه حل پایگاه داده دیگری ندارید..

در صورت عدم استفاده از PostgreSQL

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

به عبارت دیگر ، همیشه از PostgreSQL استفاده کنید ، مگر اینکه 100٪ کارهایی را که می کنید بدانید! ��

اینو ببین SQL & دوره PostgreSQL برای مبتدیان اگر علاقه مند به یادگیری بیشتر هستید.

MariaDB

MariaDB توسط همان شخصی که MySQL را توسعه داد ، به عنوان جایگزینی برای MySQL ایجاد شد.

سردرگم?

خوب ، در واقع ، پس از به دست آوردن MySQL توسط اوراکل در سال 2010 (با دستیابی به Sun Microsystems ، که اتفاقاً نیز چگونگی دستیابی اوراکل به کنترل جاوا است) ، خالق MySQL یک پروژه منبع باز جدید به نام MariaDB را آغاز کرد..

چرا این همه جزئیات خسته کننده اهمیت دارد؟ به این دلیل که MariaDB از همان پایه کد مشابه با MySQL ایجاد شده است (در دنیای منبع آزاد ، این پروژه به عنوان “Forking” یک پروژه موجود معروف است). در نتیجه ، MariaDB به عنوان یک جایگزین “drop-in” برای MySQL ارائه می شود.

یعنی اگر از MySQL استفاده می کنید و می خواهید به MariaDB مهاجرت کنید ، این روند به آسانی انجام می شود که شما آن را باور نمی کنید.

متأسفانه ، چنین مهاجرتی یک خیابان یک طرفه است. بازگشت از MariaDB به MySQL امكان پذیر نیست و در صورت تلاش برای استفاده از زور ، فساد دائمی پایگاه داده تضمین می شود!

ویژگی های منحصر به فرد

در حالی که MariaDB در اصل یک کلون از MySQL است ، کاملاً درست نیست. از زمان معرفی بانک اطلاعاتی ، اختلافات بین این دو رو به افزایش است. در مورد نوشتن ، اتخاذ MariaDB باید از طرف شما تصمیمی متفکر باشد. به گفته این ، موارد جدید زیادی در MariaDB اتفاق می افتد که ممکن است به شما در انجام این انتقال کمک کند:

  • واقعاً رایگان و آزاد: از آنجا که هیچ واحد شرکتی واحدی را کنترل نمی کند که MariaDB را کنترل می کند ، می توانید از مجوزهای ناگهانی شکارچیان و نگرانی های دیگر عاری باشید.
  • چندین گزینه دیگر از موتورهای ذخیره سازی برای نیازهای تخصصی: به عنوان مثال موتور عنکبوتی برای معاملات توزیع شده. ColumnStore برای انبارداری گسترده از داده ها. موتور ColumnStore برای ذخیره سازی موازی ، توزیع شده. و بسیاری ، بسیاری دیگر.
  • پیشرفت سرعت در MySQL ، به ویژه به دلیل موتور ذخیره سازی Aria برای نمایش داده های پیچیده.
  • ستون های دینامیکی برای ردیف های مختلف در یک جدول.
  • قابلیت های بهتر تکرار (به عنوان مثال ، تکثیر چند منبع)
  • چندین عملکرد JSON
  • ستون های مجازی

. . . و بسیاری ، موارد دیگر این همه فراموشی است تا همه ویژگی های MariaDB را رعایت کنید. ��

چه موقع از MariaDB استفاده کنیم

اگر می خواهید یک جایگزین واقعی MySQL جایگزین کنید ، می خواهید MariaDB باشید و بخواهید همچنان روی منحنی نوآوری بمانید و قصد بازگشت دوباره به MySQL را ندارید. یکی از موارد استفاده عالی استفاده از موتورهای ذخیره سازی جدید در MariaDB برای تکمیل مدل داده های رابطه ای موجود پروژه شما است.

چه موقع از MariaDB استفاده نکنید

سازگاری با MySQL در اینجا تنها نگرانی است. به گفته این ، مشكل كمتر می شود زیرا پروژه هایی مانند وردپرس ، جوملا ، مگنتو و غیره ، از MariaDB حمایت كرده اند. توصیه من این خواهد بود که از MariaDB برای فریب CMS که پشتیبانی نمی کند استفاده کنید ، زیرا بسیاری از ترفندهای مربوط به بانک اطلاعاتی وجود دارد که سیستم را به راحتی خراب می کنند.

CockroachDB

به نظر می رسد تیم پشت CockroachDB از ماسوسیست ها تشکیل شده است. مطمئناً با داشتن نامی از این محصول ، می خواهند همه اختلافات را برعکس کنند و هنوز هم پیروز شوند?

خوب ، نه کاملاً.

ایده “سوسک” این است که این یک حشره است که برای بقا ساخته شده است. مهم نیست که چه اتفاقی می افتد – شکارچیان ، سیل ها ، تاریکی ابدی ، غذا پوسیده ، بمباران ، سوسک راهی برای زنده ماندن و تکثیر پیدا می کند.

ایده این است که تیم در پشت CockroachDB (متشکل از مهندسان سابق گوگل) با محدودیت راه حل های سنتی SQL وقتی بزرگ می شود ناامید شدند. به این دلیل که قرار بود راه حلهای SQL از لحاظ تاریخی میزبان یک دستگاه واحد باشند (داده ها چندان بزرگ نبودند). برای مدت طولانی ، هیچ راهی برای ساختن خوشه ای از بانکهای اطلاعاتی با SQL وجود نداشت ، به همین دلیل MongoDB توجه بسیاری را به خود جلب کرد.

حتی وقتی تکثیر و خوشه بندی در MySQL ، PostgreSQL و MariaDB به وجود آمد ، در بهترین حالت دردناک بود. CoackroachDB می خواهد این تغییر را ایجاد کند ، بدون ریزش ، خوشه بندی و دسترسی زیاد به دنیای SQL بدون دردسر ایجاد کند..

چه موقع از CockroachDB استفاده کنیم

CockroachDB رویای معمار سیستم محقق شده است اگر به SQL قسم می خورید و در قابلیت مقیاس گذاری MongoDB متولد شده اید ، CockroachDB را دوست خواهید داشت. اکنون می توانید به سرعت خوشه ای تنظیم کنید ، نمایش داده شد و در شب آرام باشید. ��

چه موقع از CockroachDB استفاده نکنید

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

از این پس ، ما راه حل های پایگاه داده غیر SQL (یا NoSQL ، به اصطلاح نامیده می شود) را برای نیازهای بسیار تخصصی در نظر بگیریم.

Neo4j

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

شبکه های اجتماعی یک نمونه اصلی است و ساختن یک مدل داده مشابه با استفاده از SQL یا حتی پایگاه داده های مبتنی بر اسناد یک کابوس است..

به این دلیل است که ساختار داده ایده آل برای این راه حلها نمودار است که یک جانور کاملاً متفاوت است. و برای آن به یک پایگاه داده گرافیکی مانند نیاز دارید Neo4j.

مثال فوق مستقیماً از وب سایت Neo4j گرفته شده است و نشان می دهد که چگونه دانشجویان دانشگاه به بخش ها و دوره های آنها متصل می شوند. چنین مدل داده ای با SQL کاملاً غیرممکن است ، زیرا اجتناب از حلقه های بی نهایت و غلبه بر حافظه دشوار خواهد بود.

ویژگی های منحصر به فرد

پایگاه داده های نمودار به خودی خود بی نظیر هستند و Neo4j تقریباً تنها گزینه کار با نمودارها است. در نتیجه ، هر ویژگی که دارد بی نظیر است. ��

  • پشتیبانی از برنامه های کاربردی و تحلیلی نمودار.
  • توانایی تبدیل داده ها برای هضم داده های جدولی در مقیاس بزرگ به نمودار.
  • زبان جستجوی تخصصی (Cypher) برای پرس و جو از پایگاه داده نمودار
  • ویژگی های تجسم و کشف

بحث و گفتگو در مورد زمان استفاده از Neo4j ، و چه موقع نیست ، یک نکته جالب است. اگر به روابط مبتنی بر نمودار بین داده های خود نیاز دارید ، به Neo4j نیاز دارید. ��

MongoDB

MongoDB اولین پایگاه داده غیر رابطه ای بود که موج های بزرگی را در صنعت فناوری ایجاد کرد و همچنان بر توجه عادلانه ای همچنان حاکم است.

بر خلاف بانکهای اطلاعاتی رابطه ای ، MongoDB یک “بانک اطلاعات اسناد” است ، به این معنی که داده ها را در تکه ها ذخیره می کند ، و داده های مرتبط با هم در همان بخش جمع می شوند. این امر با تصور جمع از ساختارهای JSON مانند این قابل درک است:

در اینجا ، برخلاف یک ساختار مبتنی بر جدول ، جزئیات تماس و سطح دسترسی کاربر در همان شیء قرار دارد. واکشی شیء کاربر داده های مرتبط را به صورت خودکار واکشی می کند ، و مفهومی برای پیوستن وجود ندارد. در اینجا مقدمه ای دقیق تر به MongoDB آمده است.

ویژگی های منحصر به فرد

MongoDB چند ویژگی جدی دارد (من تقریباً می خواهم “الاغ” را برای نوشتن تأثیر بنویسم ، اما در یک وب سایت عمومی مناسب نیست. شاید) ویژگی هایی که باعث شده چندین معمار فصلی از سرزمین رابطه برای همیشه رها شوند:

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

اگر من مانند سخنگوی MongoDB به نظر می رسد ، عذرخواهی می کنم ، اما نادیده گرفتن مزایای MongoDB دشوار است. مطمئناً ، مدل سازی داده های NoSQL در ابتدا عجیب است و برخی دیگر هرگز از این کار آزار نمی دهند ، اما برای بسیاری از معماران ، تقریباً همیشه بر اساس یک طرح مبتنی بر جدول برنده می شود..

چه موقع از MongoDB استفاده کنیم

MongoDB یک پل متقاطع عالی از دنیای ساختاری دقیق و سخت SQL گرفته تا آمورف است که تقریباً گیج کننده یکی از NoSQL است. این از پیشرفت نمونه های اولیه برتری دارد ، زیرا هیچ برنامه ای برای نگرانی در مورد آن وجود ندارد ، و هنگامی که واقعاً نیاز به اندازه گیری دارید. بله ، می توانید از سرویس SQL cloud برای خلاص شدن از مسائل مقیاس DB استفاده کنید ، اما پسر گران است!

سرانجام ، موارد استفاده ای وجود دارد که راه حل های مبتنی بر SQL فقط این کار را نمی کنند. به عنوان مثال ، اگر محصولی مانند Canva را ایجاد می کنید ، در آنجا کاربر می تواند طرح های پیچیده ای را ایجاد کند و بعداً بتواند آنها را ویرایش کند ، با یک بانک اطلاعاتی رابطه ای موفق باشید.!

چه موقع از MongoDB استفاده نکنید

فقدان کامل برنامه ای که MongoDB در اختیار شما قرار می دهد می تواند به عنوان گودالی برای کسانی که نمی دانند چه کاری انجام می دهند عمل کند. عدم مطابقت داده ها ، داده های مرده ، فیلدهای خالی که نباید خالی باشد – همه اینها و خیلی موارد دیگر امکان پذیر است. MongoDB در اصل یک فروشگاه داده “گنگ” است و اگر آن را انتخاب کنید ، کد برنامه باید مسئولیت زیادی را برای حفظ یکپارچگی داده ها به عهده بگیرد..

اگر شما یک توسعه دهنده هستید ، آنگاه خواهید یافت این مفید است.

RethinkDB

همانطور که از نام آن می رود, RethinkDB ایده ها و قابلیت های یک بانک اطلاعاتی را در هنگام برنامه های زمان واقعی “دوباره فکر می کند”.

هنگامی که یک پایگاه داده به روز می شود ، راهی برای اطلاع برنامه وجود ندارد. رویکرد پذیرفته شده این است که برنامه به محض بروزرسانی یک اعلان را خاموش کند ، که از طریق یک پل پیچیده به قسمت جلویی منتقل می شود (PHP -> ردیس -> گره -> Socket.io یک نمونه است).

اما اگر بروزرسانی ها مستقیماً از پایگاه داده به قسمت جلویی منتقل شوند چه می شود؟?!

بله ، این قول RethinkDB است. بنابراین اگر می خواهید یک برنامه واقعی در زمان واقعی (بازی ، بازار ، آنالیز و غیره) درست کنید ، Rethink DB ارزشمند است.

ردیس

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

یادگیری این بانک اطلاعاتی یک کار ده دقیقه ای است (به معنای واقعی کلمه!) ، و این یک فروشگاه ساده با ارزش اصلی است که رشته ها را با مدت زمان انقضا (البته می توان آن را تا بی نهایت تنظیم کرد) ذخیره می کند. آنچه Redis در ویژگی هایی که در سودمندی و عملکرد ایجاد می کند از دست می دهد. از آنجایی که کاملاً در RAM زندگی می کند ، خواندن و نوشتن بسیار ناخوشایند است (چند صد هزار عملیات در ثانیه غافل از این نیستند).

Redis همچنین دارای یک پیشرفته است سیستم pub-sub, که این پایگاه داده را دو برابر جذاب می کند.

به عبارت دیگر ، اگر پروژه ای دارید که می تواند از حافظه پنهان بهره ببرد یا برخی از مؤلفه های توزیع شده را داشته باشد ، Redis انتخاب اول است.

SQLite

بله ، من قول دادم که ما با بانکهای اطلاعاتی رابطه ای انجام شده ایم ، اما SQLite خیلی ناز است که نادیده گرفته شود.

SQLite یک کتابخانه سبک وزن C است که موتور ذخیره سازی پایگاه داده رابطه ای را ارائه می دهد. همه چیز در این بانک اطلاعاتی در یک پرونده واحد زندگی می کند (با پسوند .sqlite) که می توانید در هر جایی از سیستم پرونده خود قرار دهید. و این تنها چیزی است که شما باید از آن استفاده کنید! بله ، هیچ نرم افزاری “سرور” برای نصب و هیچ سرویس برای اتصال به آن وجود ندارد.

ویژگی های مفید

اگرچه SQLite جایگزین سبک وزن برای یک پایگاه داده مانند MySQL است ، اما مشتی کاملاً بسته دارد. برخی از ویژگی های تکان دهنده آن عبارتند از:

  • پشتیبانی کامل از معاملات ، با COMMIT ، ROLLBACK و شروع.
  • پشتیبانی از 32000 ستون در هر جدول
  • پشتیبانی JSON
  • پشتیبانی 64 طرفه بپیوندید
  • سوالات زیر ، جستجوی متن کامل و غیره.
  • حداکثر اندازه بانک اطلاعاتی 140 ترابایت!
  • حداکثر اندازه ردیف 1 گیگابایت!
  • 35٪ سریعتر از پرونده I / O

چه زمانی از SQLite استفاده کنیم

SQLite یک بانک اطلاعاتی بسیار تخصصی است که روی یک رویکرد بدون مزخرف و متعهدانه تمرکز دارد. اگر برنامه شما نسبتاً ساده است و شما مشاجره یک بانک اطلاعاتی کامل را نمی خواهید ، SQLite یک نامزد جدی است. این امر به ویژه برای CMS های کوچک و متوسط ​​و برنامه های نمایشی معقول است.

در صورت عدم استفاده از SQLite

در حالی که چشمگیر است ، SQLite تمام ویژگی های SQL استاندارد یا موتور پایگاه داده مورد علاقه شما را پوشش نمی دهد. خوشه بندی ، رویه های ذخیره شده و برنامه های افزودنی اسکریپتینگ موجود نیست. همچنین ، مشتری برای اتصال ، پرس و جو و اکتشاف بانک اطلاعاتی وجود ندارد. سرانجام ، با افزایش اندازه برنامه ، عملکرد کاهش می یابد.

کاساندرا

در حالی که بسیاری ابراز می کنند که پایان برای جاوا است ، هر چند وقت یک بار جامعه یک بمب را رها می کند و منتقدین را سکوت می کند. کاساندرا نمونه ای از این دست است.

Cassandra متعلق به چیزی است که به عنوان خانواده “ستونی” از بانکهای اطلاعاتی شناخته می شود. انتزاع ذخیره سازی در کاساندرا یک ستون است نه یک ردیف. ایده در اینجا ذخیره تمام داده ها در یک ستون بصورت جسمی در کنار دیسک است و زمان جستجو را به حداقل می رساند.

ویژگی های منحصر به فرد

Cassandra با یک مورد خاص برای استفاده در ذهن شما طراحی شد – رسیدگی به بارهای سنگین و تحمل صفر برای خرابی. اینها به نقاط فروش بی نظیر آن تبدیل می شوند.

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

چه زمانی از کاساندرا استفاده کنیم

ورود به سیستم و تجزیه و تحلیل دو بهترین مورد برای کاساندرا هستند. اما این همه چیز نیست – نکته جالب این است که شما نیاز دارید که اندازه های بزرگی از داده ها را کنترل کنید (اپل دارای Cassandra است که 400+ petabytes از داده ها را اداره می کند ، در حالی که در Netflix روزانه 1 تریلیون درخواست در اختیار دارد) با خرابی واقعی صفر. در دسترس بودن بالا یکی از ویژگی های بارز کاساندرا است.

چه موقع از کاساندرا استفاده نکنید

طرح ذخیره ستون کاساندرا نیز معایب آن را دارد. مدل داده نسبتاً مسطح است و اگر به تجمع نیاز دارید ، كاساندرا كوتاه می شود. علاوه بر این ، با قربانی کردن قوام ، به دسترسی بالایی می رسد (قضیه CAP برای سیستم های توزیع شده را بخاطر بسپار) ، که باعث می شود برای سیستمهایی که دقت خواندن بالایی دارند ، کمتر مناسب باشد..

مقیاس زمانی

تحولات جدید نیاز به انواع جدیدی از بانکهای اطلاعاتی دارد و اینترنت اشیاء (IoT) نیز چنین پدیده ای است. یکی از بهترین پایگاه داده های منبع باز برای آن است مقیاس زمانی.

بازه زمانی نوعی پایگاه داده “سری زمانی” است. در آن زمان متفاوت از یک پایگاه داده سنتی ، محور اصلی نگرانی است ، و تجزیه و تحلیل و تجسم مجموعه های عظیم داده از اولویت های اصلی است. پایگاه داده های سری زمانی به ندرت شاهد تغییر در داده های موجود هستند. یک نمونه خوانش دما است که توسط یک سنسور در گلخانه ارسال می شود – داده های جدید هر ثانیه جمع می شوند ، که مورد علاقه آنالیز و گزارش است.

چرا فقط از یک پایگاه داده سنتی با فیلد timestamp استفاده نمی کنیم؟ خوب ، دو دلیل اصلی برای آن وجود دارد:

  • پایگاه داده های عمومی برای کار با داده های مبتنی بر زمان بهینه نشده اند. برای همان مقادیر داده ، یک بانک اطلاعاتی با هدف کلی بسیار کندتر خواهد بود.
  • به دلیل نگه داشتن داده های جدید و حذف داده ها یا تغییر شمای ، پایگاه داده باید مقادیر انبوهی از داده ها را اداره کند. بعداً گزینه ای نیست.

ویژگی های منحصر به فرد

Timescale DB ویژگی های مهیج دارد که آن را از سایر پایگاه های داده در همان دسته جدا می کند:

  • این در PostgreSQL ساخته شده است ، احتمالاً بهترین پایگاه داده رابطه منبع باز در آنجا. اگر پروژه شما قبلاً PostgreSQL را اجرا کند ، Timescale به سمت راست اسلاید می شود.
  • پرس و جو از طریق نحو SQL آشنا انجام می شود و منحنی یادگیری را کاهش می دهد.
  • سرعت نوشتن ناگهانی سریع – میلیون ها درج در ثانیه از این غافل نیستند.
  • میلیاردها ردیف یا petabytes داده – برای Timescale چیز بزرگی نیست.
  • انعطاف پذیری واقعی با طرحواره – بر اساس نیاز خود از رابطه یا طرحواره انتخاب کنید.

منطقی نیست که درباره زمان استفاده یا عدم استفاده از Timescale DB صحبت کنیم. اگر IoT دامنه شما است ، یا از ویژگی های مشابه پایگاه داده استفاده می کنید ، Timescale ارزش بررسی دارد.

CouchDB

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

در اصل ، شما می توانید از یک خوشه CouchDB به عنوان یک مجموعه توزیع گره های بزرگ و کوچک فکر کنید ، که انتظار می رود برخی از آنها آفلاین باشند. به محض اینکه یک گره آنلاین شد ، داده ها را به خوشه ارسال می کند ، که به آرامی و با دقت هضم می شود ، در نهایت در دسترس برای کل خوشه قرار می گیرد.

ویژگی های منحصر به فرد

CouchDB وقتی صحبت از پایگاه داده است ، یک نوع نژاد منحصر به فرد است.

  • قابلیت های همگام سازی داده های آفلاین
  • نسخه های تخصصی برای مرورگرهای تلفن همراه و وب (PouchDB ، CouchDB Lite و غیره)
  • قابلیت اطمینان ، مقاوم در برابر تصادف ، نبرد
  • خوشه بندی آسان با ذخیره اطلاعات اضافی

چه موقع از CouchDB استفاده کنیم

CouchDB برای تحمل آفلاین ساخته شده است و از این نظر بی نظیر است. یک مورد استفاده معمولی برنامه های تلفن همراه است که بخشی از داده های شما در نمونه CouchDB در تلفن کاربر قرار دارد (زیرا این همان جایی است که تولید شده است). نکته جالب این است که شما نمی توانید همیشه به دستگاه کاربر متصل شوید و به این معنی اعتماد کنید که بانک اطلاعاتی باید فرصت طلب باشد و بعداً برای رفع به روزرسانی های متناقض آماده باشد. این با استفاده از چشمگیر حاصل می شود پروتکل تکرار مبل.

هنگام استفاده از CouchDB استفاده نکنید

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

نتیجه

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

اگر کنجکاو برای یادگیری بانک اطلاعاتی هستید ، بررسی کنید اودمی برای برخی از دوره های آنلاین درخشان.

برچسب ها:

  • بانک اطلاعات

  • متن باز

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me