تعريف قاعدة بيانات MariaDB
#1
السلام عليكم ورحمة الله تعالى وبركاته

MariaDB: التعريف والوظيفة ونقاط القوة والضعف

تعريف MariaDB

قاعدة البيانات MariaDB هو تطوير مستقل لـ MySQL
MySQL هي إحدى أشهر قواعد البيانات وأكثرها استخداما في جميع أنحاء العالم. كما أنها مجانية ومفتوحة المصدر. تعد MySQL، التي طُوِّرت بلغة C/C++‎، إحدى أفضل الخيارات المتاحة في السوق.
تم تأسيس قاعدة البيانات MySQL  من قبل الشركة السويدية "MySQL AB" في عام 1995. وقد تم الاستحواذ على MySQL AB لاحقًا من قبل شركة Sun Microsystems في عام 2008. وفي وقت لاحق أيضًا، تم الاستحواذ على شركة Sun Microsystems من قبل شركة Oracle في عام 2010. منذ ذلك الحين، تُصان MySQL وتُدار من قبل Oracle.
إبّان الاستحواذ على Sun Microsystems من قبل Oracle، شعر بعض كبار المهندسين الذين كانوا يعملون على تطوير MySQL بوجود تضارب في المصالح بين MySQL، وقاعدة بيانات Oracle التجارية - Oracle Database Server. لذلك قرر هؤلاء المهندسون استنساخ شيفرة MySQL، وأسسوا منظمتهم الخاصة. وهكذا وُلدت MariaDB.
MariaDB مقابل MySQL: مقارنة الأداء
تتمتع MariaDB بالعديد من التحسينات التي تجعل أداءها أحسن مقارنةً بـ MySQL. في الحقيقة، كانت تلك هي بالضبط الرؤية المنشودة عند تأسيس MariaDB من قبل Michael Widenius، المؤسس الأصلي لكل من MySQL و MariaDB.
عروض قاعدة البيانات (Database Views)
هناك تحسين كبير في الأداء بخصوص "عروض" (views) قاعدة البيانات. "العروض" هي بالأساس جداول افتراضية لقاعدة البيانات يمكن الاستعلام عنها مثل الجداول العادية. في MySQL، عند الاستعلام عن عرض معيّن، سيُستعلم عن جميع الجداول المتصلة بالجدول، حتى لو لم يتطلّب الاستعلام كافة العروض. تم تحسين هذا في MariaDB، حيث يتم الاستعلام فقط عن الجداول المطلوبة (required) من الاستعلام.

ColumnStore
تقدم MariaDB تحسينًا مهمًا آخر للأداء في شكل ميزة "ColumnStore"، وهي عبارة عن بنية بيانات موزعة تسمح بتوسيع MariaDB بشكل كبير. يمكن أن تتوسع خطيًا لتخزين عدة بيتابايتات petabytes (بيتابايت = مليون جيجابايت) من البيانات عبر خوادم مختلفة في كتلة قاعدة البيانات.
ذاكرة التخزين المؤقت المفتاحية (Segmented Key Cache)
تقدم MariaDB تحسينًا آخر في الأداء عبر ذاكرة التخزين المؤقت المفتاحية (Segmented Key Cache). في ذاكرة التخزين المؤقت النموذجية، تتنافس عدة مهام فرعية (threads) لقفل مدخل المخزن المؤقت (cached entry). وتسمى هذه الأقفال mutexes. عندما تتنافس عدة مهام فرعية على كائن mutex، فقط واحد منها سيكون قادرًا على الحصول عليه، بينما يتعيّن على الأخرى انتظار فتح القفل قبل إنجاز العملية. هذا يؤدي إلى تأخير تنفيذ المهام الفرعية، مما يؤدي إلى إبطاء قاعدة البيانات. في حالة ذاكرة التخزين المؤقت المفتاحية، لا تحتاج المهمة الفرعية إلى قفل الصفحة بأكملها، ولكن يمكنها الاكتفاء بقفل الجزء المعين الذي تنتمي إليه الصفحة. يمكّن هذا من أن تعمل عدة مهام فرعية توازيًا، وبالتالي زيادة التوازي في التطبيق، مما يؤدي إلى تحسين أداء قاعدة البيانات.
الأعمدة الافتراضية (Virtual Columns)
من الميزات الحسنة التي تدعمها MariaDB ميزةُ الأعمدة الافتراضية (virtual columns). هذه الأعمدة قادرة على إجراء العمليات الحسابية على مستوى قاعدة البيانات. يعد هذا مفيدًا للغاية عندما تعمل العديد من التطبيقات على نفس العمود، وبالتالي، ليست هناك حاجة لكتابة الحسابات في كل تطبيق - يمكن لقاعدة البيانات القيام بذلك نيابة عنك. هذه الميزة غير متوفرة في MySQL.
التنفيذ المتوازي للاستعلامات
يسمح الإصدار MariaDB 10.0 بتنفيذ عدة استعلامات بالتوازي. والفكرة هي أنّ بعض الاستعلامات من القاعدة الرئيسية (Master) يمكن تكرارها في القاعدة الفرعية (slave)، وبالتالي، يمكن تنفيذها بالتوازي. هذا التوازي في تنفيذ الاستعلامات يعطي الأفضلية لقاعدة البيانات MariaDB على أختها MySQL.
تجميع المهام الفرعية (Thread Pooling)
قدمت MariaDB مفهومًا جديدًا يسمى تجميع المهام الفرعية (Thread Pooling). في السابق، كنت إن احتجت إلى ربط عدة اتصالات بقاعدة البيانات مضطرًّا إلى فتح مهمة فرعية لكل اتصال (connection)، مما كان يؤدي إلى هيكلة قائمة على "مهمة فرعية لكل اتصال" (one thread per connection). باستخدام "تجميع المهام الفرعية"، ستكون هناك مجموعة من المهام الفرعية المفتوحة التي يمكن لأي اتصال جديد أن يرتبط بها ويستعلم عن قاعدة البيانات. بهذه الطريقة، لا يلزم فتح مهمة فرعية جديدة لكل طلبية اتصال (connection request) جديد، وهو ما أدى إلى جعل نتائج الاستعلام أسرع. تتوفر هذه الميزة في الإصدار التجاري (Enterprise edition) من MySQL، ولكنها للأسف غير متوفرة في الإصدار المجاني (Community edition).
خلاصة
MariaDB هي أداة قوية للغاية، وتوفر العديد من الميزات المفيدة التي لا تدعمها MySQL. مثلُ هذه الميزات تجعل MariaDB خيارًا ممتازًا لاستخدامها كقاعدة بيانات للواجهة الخلفية الأساسية. بشكل عام، لا تحتاج المؤسسات التي اشترت بالفعل تراخيص Oracle إلى الاستثمار في MariaDB. أما أولئك الذين لا يزالون في البداية، فلا شك أنّ MariaDB هي الخيار الأفضل لهم.
المصدر : مترجم : https://hackr.io/blog/mariadb-vs-mysql
مميزات :
ــ يمكن أيضًا استخدام MariaDB كتطبيق قاعدة بيانات لنطاق أكبر حيث يمكن أن يصل عدد السجلات إلى حوالي 50 مليون. بالإضافة إلى ذلك ، تبين أن هذا التطبيق قادر على استيعاب ما يقرب من 60 ألف جدول و 5 مليارات صف. في كل جدول اتضح أنه قادر على استيعاب الفهارس حتى 32 فهرسًا.
ــ يعمل MariaDB على توصيل العملاء باستخدام بروتوكول TCP / IP ، أو الأنابيب المسماة أو NT ، وأيضاً مأخذ UNIX.
يعمل هذا التطبيق أيضا للكشف تلقي رسائل خطأ من العملاء في 20 لغة مختلفة على الأقل. على الرغم من أنه صحيح أن اللغة الإندونيسية غير مدرجة في تلك اللغات العشرين.
ــ يعمل MariaDB على توفير البيانات أنواع مختلفة مما سيسهل بالتأكيد للمستخدمين عندما يرغبون في استخدام تطبيق قاعدة بيانات ليس فقط قادرًا على التعامل مع نطاق واسع ، ولكنه يوفر أيضًا العديد من خيارات البيانات.
ــ لدى MariaDB وظائف متعددة المستخدمين. أي أنه يمكن استخدام هذا التطبيق من قبل العديد من المستخدمين في نفس الوقت. هذا هو السبب في اختيار هذا البرنامج أكثر من الآخرين.
‏اللّهمّ فرّج أُموراً ضَاقت بها صُدورنا وعجزت بها حيلتنا وقلّ بها صَبرنا الّلهمّ أَسعِد قلوبنا بما أنتَ أعْلَمُ بِهِ مِنّا
[-] كل من 6 users say قال شكرا ل larbiparadox على المشاركة المفيدة
  • Mr.DOS, ELARAPY, أبو معاذ, rm31, لؤي, Delphi4Us
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم