0% found this document useful (0 votes)
16 views34 pages

Advance DB

Uploaded by

Sina Ghaderi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODP, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views34 pages

Advance DB

Uploaded by

Sina Ghaderi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODP, PDF, TXT or read online on Scribd
You are on page 1/ 34

‫تجزیه و تحلیل پرفورمنس و مقیاس پذیری ‪ SQL‬در‬

‫مقابل ‪NoSQL‬‬
‫مقایسه دیتابیس های ‪ MongoDB‬و ‪ Cassandra‬و ‪PostgreSQL‬‬
‫مقاله ‪ ۲۰۲۳‬ژورنال ‪IEEE‬‬

‫ســـینا قادری‬
‫‪ ۲۹‬آذر ‪ ۱۴۰۳‬ارائه کالس پایگاه داده پیشرفته‬
‫چکیده مـقاله‬

‫این مطالعـه بـا هـدف بررسـی روش‌هـای پیشـرفته بـرای مـدیریت پایگـاه داده مقیاس‌پـذیر و‬
‫تمرکـز بـر مقـرون بـه صـرفه بـودن انجـام شـده اسـت‪ .‬در این تحقیـق‪ ،‬دو پایگـاه داده ‪NoSQL‬‬
‫رایج ‪ MongoDB‬و ‪ Cassandra‬بـا یـک سیسـتم مـدیریت پایگـاه داده رابطه‌ای سـنتی‪،‬‬
‫یهـای عملکـردی انجـام شـده‬ ‫یشـوند‪ .‬این مقایسـه از طریـق ارزیاب ‌‬‫‪ PostgreSQL‬مقایسـه م ‌‬
‫یهـا شـامل عملیـات‬‫یگـیرد‪ .‬ارزیاب ‌‬
‫روی چنـدین کالسـتر در محیط‌هـای ابـری و محلی صـورت م ‌‬
‫پایگـاه داده‌ای همچـون ‪ INSERT‬و ‪ SELECT‬و ‪ DELETE‬اسـت‪ .‬نتـایج مطالعـه نشـان می‌دهـد‬
‫کـه هـر سیسـتم مـدیریت پایگـاه داده بـرای مـوارد اسـتفاده خاصـی بهینه‌سـازی شـده اسـت‪.‬‬
‫انتخـاب پایگـاه داده بایـد بـر اسـاس ارزیـابی جـامع چنـدین عامـل‪ ،‬نـه تنهـا مقیـاس پـذیری و‬
‫عملکـرد‪ ،‬انجـام شـود‪ .‬نـوآوری این مطالعـه در مقایسـه مقیـاس پـذیری سـه سیسـتم مـدیریت‬
‫پایگـاه داده محبـوب و تأکیـد آن بـر مقـرون بـه صـرفه بـودن هنگـام ارزیـابی عملکـرد در محیط‌هـای‬
‫مختلف است‬

‫پایگاه داده پیشرفته‬ ‫‪2‬‬


‫مقدمه و معرفی‬

‫پایگاه داده پیشرفته‬ ‫‪3‬‬


‫چرا؟‬

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

‫پایگاه داده پیشرفته‬ ‫‪4‬‬


‫دیتابیس های ‪NoSQL‬‬

‫یشـود‬‫ههـای داده گفتـه م ‌‬


‫نو اس کیـو ال (بـه معنـای ‪ )Not Only SQL‬بـه مجمـوعه‌ای از پایگا ‌‬
‫کـه بـرای مـدیریت و ذخیره‌سـازی داده‌هـا از مـدل‌های غـیررابطه‌ای اسـتفاده می‌کننـد‪ .‬این‬
‫ههـای بـزرگ (‪ ،)Big Data‬سـاختارهای پیچیـده‪ ،‬و نیازهـای خاصـی‬ ‫دیتـابیس هـا بـرای کـار بـا داد ‌‬
‫س پـذیری و پـردازش بالدرنـگ طـراحی شـده‌اند‪ .‬بـرخالف پایگاه‌هـای داده رابطه‌ای‬ ‫مثـل مقیـا ‌‬
‫که از جداول و روابط ثابت استفاده می‌کنند‪ NoSQL ،‬از مدل‌های متنوعی بهره می‌گیرد‬

‫مقیاس‌پذیری باال‪ :‬امکان توزیع داده‌ها در چندین سرور‬ ‫●‬

‫انعطاف‌پذیری در مدل داده‪ :‬نیازی به تعریف ساختار ثابت مانند جداول نیست‬ ‫●‬

‫عملکرد باال‪ :‬برای حجم‌های عظیم داده و نیازهای بالدرنگ بسیار مناسب است‬ ‫●‬

‫نبود استاندارد واحد‪ :‬هر سیستم ‪ NoSQL‬معماری خاص خود را دارد‬ ‫●‬

‫عدم پشتیبانی از تراکنش‌های پیچیده برخالف ‪SQL‬‬ ‫●‬

‫پایگاه داده پیشرفته‬ ‫‪5‬‬


‫انواع دیتابیس های ‪NoSQL‬‬

‫دیتابیس های سنـــدی‬


‫دیتـا در قـالب سـند و بـا انکـدینگ ‪ JSON‬یـا ‪ BSON‬ذخـیره‬
‫میشـود‪ MongoDB ،‬یـک دیتـابیس اوپن سـورس از نـوع‬
‫داکیومنت است‬
‫دیتابیس های کلیدمقدار‬
‫دیتـا در قـالب یـک کلیـد و مقـدار جفت آن ذخـیره می‌شـود‪،‬‬
‫‪ Redis‬یـک دیتـابیس اوپن سـورس از نـوع کلیـد مقـداری‬
‫است‬
‫دیتابیس های ستـــونی‬
‫دیتـا بـه صـورت سـتون‌های مرتبـط بـا یکـدیگر سـازماندهی‬
‫و ذخـیره می‌شـوند‪ Cassandra ،‬یـک دیتـابیس اوپن‬
‫سورس از نوع ستونی است‬
‫دیتابیس های گـــــراف‬
‫برای ذخـیره دیتـا هـایی بـا روابـط پیچیـده مناسـب اسـت‪،‬‬
‫مثًال ذخـیره نقشـه راه‌هـای یـک اسـتان‪ Neo4j ،‬یـک‬
‫دیتابیس اوپن سورس از نوع گراف است‬
‫پایگاه داده پیشرفته‬ ‫‪6‬‬
‫دیتابیس ‪Redis‬‬

‫پیاده‌سازی این دیتابیس بر اساس الگورتیم ‪ HashMap‬یا ‪ HashTable‬است‬ ‫●‬

‫دیتا به صورت ‪ Cache‬و روی حافظه ‪ Ram‬ذخیره می‌شوند‬ ‫●‬

‫میتوان به صورت ‪ Cache Less‬دیتا را روی ‪ Disk‬هم ذخیره کرد‬ ‫●‬

‫نوع دیتا در این دیتابیس به صورت جفت کلید و مقدار است‬ ‫●‬

‫●‬
‫‪install Redis on Linux:‬‬ ‫‪apt install redis-server‬‬
‫●‬
‫‪connect to Redis:‬‬ ‫‪redis-cli‬‬
‫●‬
‫‪set a key:‬‬ ‫>‪set <key> <value‬‬
‫●‬
‫‪delete a key:‬‬ ‫>‪del <key> <value‬‬
‫●‬
‫‪show all keys:‬‬ ‫* ‪keys‬‬

‫پایگاه داده پیشرفته‬ ‫‪7‬‬


‫دیتابیس ‪MongoDB‬‬

‫داده‌ها به صورت سندهایی در قالب ‪ BSON‬ذخیره می‌شوند‬ ‫●‬

‫این اسـناد می‌تواننـد شـامل سـاختارهای سلسـله‌مراتبی باشـند و هـر سـند می‌توانـد دارای‬ ‫●‬

‫فیلدهایی متفاوت باشد‬


‫ههـا بـه راحـتی فـراهم اسـت و نیـازی بـه تعریـف ‪ Schema‬ثـابت ماننـد‬
‫امکـان تغیـیر سـاختار داد ‌‬ ‫●‬

‫جداول ‪ SQL‬نیست‬
‫ههـا بین چنـدین سـرور از طریـق ‪ Sharding‬و امکـان مـدیریت حجم عظیمی‬ ‫قابلیت توزیـع داد ‌‬ ‫●‬

‫ههـا در سـرورهای متعـدد و امکـان اسـتفاده از ‪ Replica Sets‬بـرای اطمینـان از در‬ ‫از داد ‌‬
‫دسترس بودن داده‌ها و بازیابی از خرابی وجود دارد‬
‫●‬
‫‪Install on Linux: official MongoDB Documentation‬‬

‫پایگاه داده پیشرفته‬ ‫‪8‬‬


‫دیتابیس ‪Cassandra‬‬

‫داده‌ها به‌طور خودکار در چندین گره (‪ )Node‬در یک کالستر توزیع می‌شوند‬ ‫●‬

‫هیچ گـره‌ای نقش خاصـی نـدارد (مـدل ‪ )MasterLess‬کـه بـاعث کـاهش نقـاط ‪Single Point‬‬ ‫●‬

‫‪ Of Failure‬می‌شود‬
‫امکان اضافه یا حذف گره‌ها در کالستر بدون نیاز به توقف سیستم‬ ‫●‬

‫داده‌هـا در چنـدین گـره به‌صـورت خودکـار ‪ Replicate‬می‌شـوند‪ ،‬حـتی در صـورت خـرابی‬ ‫●‬

‫برخی گره‌ها‪ ،‬دیتا همچنان در دسترس هستند‬


‫یشـوند و بـرخالف دیتـابیس هـای ‪ Relational‬نیـازی‬
‫ههـا در قـالب جـداول سـتونی ذخـیره م ‌‬
‫داد ‌‬ ‫●‬

‫به تعریف ‪ Schema‬نیست‬


‫دارای زبانی شبیه به ‪ SQL‬برای دستکاری دیتا که ‪ CQL‬نامیده می‌شود‬ ‫●‬

‫‪ Cassandra‬روی ‪ Availability‬و ‪ Partition Tolerance‬تمرکـز دارد و ‪Eventual‬‬ ‫●‬

‫‪ Consistency‬را برای داده‌ها فراهم می‌کند‬

‫پایگاه داده پیشرفته‬ ‫‪9‬‬


‫دیتابیس ‪PostgreSQL‬‬

‫یک پایگـاه داده ‪ Relational‬اوپن سـورس و قدرتمنـد اسـت کـه بـه دلیـل قابلیت‌هـای پیشـرفته‬
‫و پایـداری خـود شـناخته می‌شـود‪ .‬این پایگـاه داده کـه بـه اختصـار ‪ Postgres‬نـیز نامیـده‬
‫یشـود‪ ،‬از اسـتاندارد ‪ SQL‬پـیروی کـرده و بـرای برنامه‌هـای مختلـف از سیسـتم‌های کوچـک تـا‬ ‫م ‌‬
‫برنامه‌هـای پیچیـده سـازمانی مناسـب اسـت و بـه دلیـل قـابلیت توسـعه‌پذیری توسـط‬
‫توسعه‌دهندگان و شرکت‌های بزرگ استفاده می‌شود‬
‫پسـتگرس هماننـد دیتـابیس هـای ‪ MySQL‬و ‪ MariaDB‬و ‪ MS SQL‬از دیتـابیس هـای رابطه‌ای‬
‫به شمار می‌آید‬
‫تراکنش‌ها کامًال مطابق با اصول ‪ ACID‬هستند که موجب صحت و پایداری داده‌ها می‌شود‬ ‫●‬

‫سازگاری کامل با استاندارد ‪ SQL‬و قابلیت اجرای کوئری‌های پیچیده‬ ‫●‬

‫امکـان اضـافه کـردن توابـع جدیـد‪ ،‬انـواع داده‌هـا‪ ،‬اینـدکس هـا‪ ،‬و حـتی زبان‌هـای برنامه‌نویسـی‬ ‫●‬

‫برای ذخیره روی سرور‬

‫پایگاه داده پیشرفته‬ ‫‪10‬‬


‫نظریه و اصل ‪CAP‬‬

‫نظریـه ‪ CAP‬کـه بـه اصـل ‪ CAP‬نـیز معـروف اسـت‪ ،‬یـک مفهـوم مهم در طـراحی سیسـتم‌های‬
‫توزیع‌شـده اسـت‪ .‬این نظریـه توسـط اریـک بروئـر (‪ )Eric Brewer‬در سـال ‪ 2000‬معـرفی و‬
‫بعـدها به‌طـور رسـمی اثبـات شـد‪ .‬نظریـه ‪ CAP‬بیـان می‌کنـد کـه یـک سیسـتم توزیع‌شـده‬
‫نمی‌تواند به‌طور هم‌زمان سه ویژگی زیر را تضمین کند‬

‫سازگاری ‪( Consistency‬منظـور از سـازگاری‪ ،‬سـازگاری قـوی یـا ‪Strong Consistency‬‬ ‫●‬

‫است)‬
‫دسترس‌پذیری (‪)Availability‬‬ ‫●‬

‫تحمل خطای پارتیشن‌بندی (‪)Partition Tolerance‬‬ ‫●‬

‫پایگاه داده پیشرفته‬ ‫‪11‬‬


‫نظریه و اصل ‪CAP‬‬

‫یکـــــپارچگی‬
‫تمـام گره‌هـای سیسـتم در هـر لحظـه داده‌هـای یکسـان و‬
‫به‌روزی را مشـاهده می‌کننـد و به‌عبـارت دیگـر‪ ،‬وقـتی داده‌ای‬
‫به‌روزرسانی می‌شود‪ ،‬همه گره‌ها نسخه جدید را می‌بینند‬

‫دسترس‌پذیری‬
‫هر درخواسـت از یـک گـره در سیسـتم حتمـًا بـا پاسـخ مواجـه‬
‫می‌شـود (حـتی اگـر بـرخی از گره‌هـا دچـار خـرابی باشـند) پس‬
‫سیسـتم همیشـه فعـال اسـت و درخواسـت‌ها را بـدون توقـف‬
‫پاسخ می‌دهد‬

‫تحمل پارتیشن‌‬
‫سیسـتم می‌توانـد در مواجهـه بـا پارتیشـن‌بندی شـبکه‬
‫شهـایی از سیسـتم) همچنـان‬‫(یعـنی قطـع ارتبـاط بین بخ ‌‬
‫بـه عملکـرد خـود ادامـه دهـد‪ ،‬در سیسـتم‌های واقعی‪،‬‬
‫احتمال بروز پارتیشن‌بندی شبکه غیرقابل‌اجتناب است‬

‫پایگاه داده پیشرفته‬ ‫‪12‬‬


‫تجزیه و تحلیل پرفورمنس‬

‫پایگاه داده پیشرفته‬ ‫‪13‬‬


‫ابزار تحلیل پرفورمنس دیتابیس‬

‫ابـزار ‪( YCSB‬مخفـف ‪ )Yahoo Cloud Serving Benchmark‬یـک ابـزار بنچمـارک یـا‬


‫ههـای داده اسـت‪ .‬این ابـزار توسـط شـرکت ‪ Yahoo‬بـرای ارزیـابی‬
‫ارزیـابی عملکـرد بـرای پایگا ‌‬
‫و مقایسـه عملکـرد سیسـتم‌های مـدیریت پایگـاه داده (‪ )DBMS‬و سـرویس‌های ابـری طـراحی‬
‫شـده اسـت ‪ YCSB‬به‌طـور خـاص بـرای پایگاه‌هـای داده ‪ NoSQL‬طـراحی شـده امـا از‬
‫پایگاه‌های داده ‪ SQL‬نیز پشتیبانی می‌کند‬

‫ههـای‬
‫ههـای داده ‪ NoSQL‬ماننـد ‪ Cassandra، MongoDB، HBase‬و همچـنین پایگا ‌‬ ‫از پایگا ‌‬ ‫●‬

‫داده ‪ SQL‬پشتیبانی می‌کند‬


‫پرفـورمنس پایگـاه داده را در حجم‌هـای مختلـف دیتـا و تحت بارهـای کـاری سـنگین ارزیـابی‬ ‫●‬

‫می‌کند‬
‫قابلیت اندازه‌گیری تاخیر (‪ )Latency‬و توان عملیاتی (‪ )Throughput‬را دارد‬ ‫●‬

‫پایگاه داده پیشرفته‬ ‫‪14‬‬


‫تحلیل پرفورمنس دیتابیس ‪ SQL‬و ‪NoSQL‬‬

‫در این مطالعـه‪ ،‬پرفـورمنس عملیـات پـایه‌ای دیتـابیس شـامل ‪ Insert‬و ‪ Delete‬و ‪Select‬‬
‫بین ‪ Cassandra‬و ‪ MongoDB‬و ‪ PostgreSQL‬مقایسـه شـد‪ .‬از ‪ PostgreSQL‬به‌عنـوان‬
‫هسـازی کلیـد مقـدار و بـا مجمـوعه‌ای‬
‫یـک پایگـاه داده رابطه‌ای اسـتفاده شـد کـه در حـالت ذخیر ‌‬
‫ثابت از فیلدها عمل می‌کرد‬

‫پایگاه داده پیشرفته‬ ‫‪15‬‬


‫تحلیل پرفورمنس دیتابیس ‪ SQL‬و ‪NoSQL‬‬

‫همـه دیتـابیس هـا بـر روی یـک ماشـین مجـازی بـا‬


‫سیســتم‌عامل ‪ Red Hat Linux x64‬در‬
‫سـرویس ابـری ‪ Amazon EC2‬پیاده‌سـازی‬
‫شدند‬
‫تسـت‌ها بـا اسـتفاده از یـک کالینت ‪Ubuntu‬‬
‫‪ x64‬و ‪ Python‬انجـام شـده و بـرای مقایسـه‬
‫پرفـورمنس‪ ،‬از یـک جـدول کـاربر شـامل دو‬
‫فیلد نام خانوادگی و نام استفاده شد‬
‫هبـرداری‬ ‫این مقایسـه در سـطوح مخــتلف بهر ‌‬
‫از دیتــابیس (‪ ۱,۰۰۰,۰۰۰ ،۱۰,۰۰۰ ،۰‬و‬
‫‪ ۵,۰۰۰,۰۰۰‬ردیف) انجام شد‬

‫پایگاه داده پیشرفته‬ ‫‪16‬‬


‫عملیات ‪ INSERT‬در دیتابیس خالی‬

‫نتـایج ارائه‌شـده در جـدول زیـر مربـوط بـه عملیـات درج در یـک پایگـاه داده خـالی شـامل‬
‫‪ ۱,۰۰۰,۰۰۰ ،۱۰,۰۰۰‬و ‪ ۵,۰۰۰,۰۰۰‬رکـورد انـدازه‌گیری شـد کـه این انـدازه‌گیری‌ها بـر حسـب‬
‫ثانیـه و تعـداد عملیـات در هـر ثانیـه می‌باشـد‪ ،‬بـرای انجـــام این تسـت از ‪ ۱۰۰‬نخ (در پـایتون)‬
‫استــفاده شده است‬

‫پایگاه داده پیشرفته‬ ‫‪17‬‬


‫عملیات ‪ INSERT‬در دیتابیس خالی‬

‫پایگاه داده پیشرفته‬ ‫‪18‬‬


‫عملیات ‪ INSERT‬در دیتابیس خالی‬

‫پایگاه داده پیشرفته‬ ‫‪19‬‬


‫عملیات ‪ INSERT‬در دیتابیس خالی‬

‫نتـایج نشـان می‌دهنـد کـه عملیـات ‪ INSERT‬وابسـته بـه تعـداد ردیف‌هـای نوشته‌شـده در پایگـاه‬
‫داده نیست‬
‫‪ MongoDB‬سـریع‌ترین عملکـرد را در میـان دیتـابیس هـای مـورد آزمـایش نشـان داد‪،‬‬
‫‪ Cassandra‬کمی کنـــدتر بـود و ‪ PostgreSQL‬بـا سرعـــتی تقریبـًا دو برابـر کنــدتر از این‬
‫دو پایگاه داده عمل کرد‬

‫پایگاه داده پیشرفته‬ ‫‪20‬‬


‫عملیات ‪ INSERT‬در دیتابیس ُپر‬

‫عملیـات ‪ INSERT‬بـا سـطوح مختلـف ُپری پایگـاه داده بـه بررسـی تـأثیر تعـداد رکوردهـای‬
‫موجـود در پایگـاه داده بـر سـرعت درج پـرداخت‪ .‬این آزمـایش نشـان داد کـه درج داده در‬
‫ههـای موجـود در آن تحت تـأثیر قـرار‬
‫ههـای مختلـف ممکن اسـت بـا تغیـیر حجم داد ‌‬
‫پایگـاه داد ‌‬
‫گیرد‬

‫پایگاه داده پیشرفته‬ ‫‪21‬‬


‫عملیات ‪ INSERT‬در دیتابیس ُپر‬

‫پایگاه داده پیشرفته‬ ‫‪22‬‬


‫عملیات ‪ INSERT‬در دیتابیس ُپر‬

‫پایگاه داده پیشرفته‬ ‫‪23‬‬


‫عملیات ‪ INSERT‬در دیتابیس ُپر‬

‫نتـایج نشـان می‌دهنـد کـه عملیـات ‪ INSERT‬رکوردهـا بـه مـیزان ُپری پایگـاه داده وابسـته نیسـت‬
‫‪ MongoDB‬سـریع‌ترین عملکـرد را در این آزمایش‌هـا نشـان داد‪ Cassandra ،‬کمی کنـدتر‬
‫بود‪ ،‬و ‪ PostgreSQL‬با سرعتی تقریبًا دو برابر کندتر از این دو پایگاه داده عمل کرد‬

‫پایگاه داده پیشرفته‬ ‫‪24‬‬


‫عملیات ‪ SELECT‬روی دیتابیس (جستجو)‬

‫زمـان جسـتجوی یـک شـیء در دیتـابیس مطـابق جـدول زیـر در شـرایط مختلـف محتـوا‬
‫اندازه‌گیری شد این اندازه‌گیری‌ها بر اساس ثانیه و تعداد عملیات در هر ثانیه انجام شدند‬
‫این آزمـایش مشـخص کـرد کـه سـرعت جسـتجو ممکن اسـت بـا افـزایش حجم داده‌هـای پایگـاه‬
‫داده تغییر کند‬

‫پایگاه داده پیشرفته‬ ‫‪25‬‬


‫عملیات ‪ SELECT‬روی دیتابیس (جستجو)‬

‫پایگاه داده پیشرفته‬ ‫‪26‬‬


‫عملیات ‪ SELECT‬روی دیتابیس (جستجو)‬

‫پایگاه داده پیشرفته‬ ‫‪27‬‬


‫عملیات ‪ SELECT‬روی دیتابیس (جستجو)‬

‫نتـایج نشـان می‌دهنـد کـه بـا افـزایش حجم دیتـا‪ ،‬زمـان جسـتجوی یـک رکـورد در ‪MongoDB‬‬
‫به‌سـرعت افـزایش می‌یابـد در حـالی کـه ‪ Cassandra‬بهـترین عملکـرد را در این شـرایط‬
‫نشان داده و زمان جستجوی آن کمتر تحت تأثیر حجم داده قرار می‌گیرد‬

‫پایگاه داده پیشرفته‬ ‫‪28‬‬


‫عملیات ‪ DELETE‬از دیتابیس‬

‫زمـان حـذف یـک شـیء از پایگـاه داده‪ ،‬مطـابق جـدول زیـر بـا محتـوای مختلـف دیتـابیس‬
‫انـدازه‌گیری شـد این انـدازه‌گیری‌ها بـر حسـب ثانیـه و تعـداد عملیـات در هـر ثانیـه انجـام شـدند تـا‬
‫تأثیر حجم داده‌های موجود در دیتابیس بر سرعت عملیات حذف بررسی شود‬

‫پایگاه داده پیشرفته‬ ‫‪29‬‬


‫عملیات ‪ DELETE‬از دیتابیس‬

‫پایگاه داده پیشرفته‬ ‫‪30‬‬


‫عملیات ‪ DELETE‬از دیتابیس‬

‫پایگاه داده پیشرفته‬ ‫‪31‬‬


‫عملیات ‪ DELETE‬از دیتابیس‬

‫نتـایج نشـان می‌دهنـد کـه بـا افـزایش حجم دیتـا‪ ،‬عملکـرد ‪ MongoDB‬به‌طـور قـابل‌توجهی‬
‫کـاهش می‌یابـد در حـالی کـه ‪ Cassandra‬بهـترین عملکـرد را نشـان می‌دهـد و زمـان حـذف‬
‫کمتری نسبت به سایر پایگاه داده‌ها دارد‬

‫پایگاه داده پیشرفته‬ ‫‪32‬‬


‫درنهایت‬

‫سپـذیر ارائـه‬
‫این مقالـه پژوهشـی یـک مـرور جـامع بـر دو سیسـتم مـدیریت پایگـاه داده مقیا ‌‬
‫کـرده و عملکـرد عملیـات پایـه در هـر سیسـتم را ارزیـابی و مقایسـه کـرده اسـت‪ .‬ظهـور این‬
‫سیسـتم‌ها بـه رشـد سـریع فناوری‌هـای اینـترنت و نیـاز بـه مـدیریت حجم بـاالی داده در‬
‫یشـود‪ .‬سیسـتم‌های ‪ NoSQL‬بـر مقیـاس پـذیری‬ ‫برنامه‌هـای بـا بـار کـاری سـنگین نسـبت داده م ‌‬
‫و تحمـل خطـا تمرکـز دارنـد‪ ،‬هرچنـد اغلب بـه قیمت کـاهش سـازگاری داده و ویژگی‌هـای‬
‫تراکنشی‬
‫یشـوند‪ ،‬سـاده‌تر از مـدل‌های‬‫مدل‌های داده‌ای کـه توسـط سیسـتم‌های ‪ NoSQL‬پشـتیبانی م ‌‬
‫رابطه‌ای هسـتند و فاقـد اسـکیماهای داده سـخت‌گیرانه و محـدودیت‌های جـامعیت می‌باشـند‪،‬‬
‫که این امر می‌تواند توسعه برنامه‌ها را ساده‌تر کند‬

‫پایگاه داده پیشرفته‬ ‫‪33‬‬


‫سپاس از توجه شما‬

‫پایگاه داده پیشرفته‬ ‫‪34‬‬

You might also like