الجمعة، 6 مارس 2020

databases

databases 

في البدايه مامعني قاعدة بيانات : (بالعامية المصرية)

بإختصار اعتبرها دفتر او مستند بتجمع فيه البيانات وطبعا بيكون ليك طريقه في ترتيب البيانات دي وكل ما تحتاج تزود معلومات فا بتحتاج ورق اكتر وقاعدة البيانات مفيدة جدا في انك تسجل عليها كل حاجه وتقدر ترجعلها في اي وقت وكمان فيها طرق بتحافظ عليها من التلف مش زي الدفاتر

وتقدر تسحب منها بيانات او تضيف عليها او تعدل او تحذف وبدون اي مشاكل
ماهي انواع databases او قواعد البيانات :

هناك نوعين رئيسيين متفق عليهم من جميع الاشخاص وهم (SQL) (NOSQL)

يتفرع منهم انواع اخرى كثيره لا داعي لذكرها انا بحاول تبسيط المعلومه

* قواعد البيانات sql هي قواعد بيانات علائقيه يوجد علاقات بين الجداول مثل عندي جدولين

جدول به اسماء الطلاب والجدول الآخر به درجاتهم اريد الحصول او تخزين الاثنين معا وهنا يأتي دول العلاقه بين الجدولين الاول به اسماء وكل اسم له رقم محدد لا يتغير يتم نسخه في الجدول التاني كناية عن اسمه والمعلومات الاخرى وهذا مثال مبسط

* قواعد البيانات nosql هي قواعد بيانات غير علائقيه ولا تخضع لاي قوانين العلاقات بين الجداول
* بالنسبة ل SQL : المشهور جدا منها

mysql -> mariadb

orcale

sql server

postgre sql

والكثير جدا

كل واحده منهم ليها مميزات وعيوب فمثلا

mysql يميزها انها مفتوحة المصدر ومجانيه يمكن استخدامها مجانا خصوصا mariadb

وبالمناسبة mariadb متفرعه من mysql لكن افضل منها من وجهة نظري في اشياء كثيره من ناحية التخزين والسرعه وهذا بناءً على تجربه شخصيه

بالنسبة ل orcale هي مغلقة المصدر وترخيصها غالي وللأسف لم يكن لدي تجربه معها

ولكن لا تختلف كثيرا عن باقي الانواع السابق ذكرها لان لديهم نفس القوانين ونفس العلائقيه

لكن جاءت كل واحده لحل مشاكل واحده اخرى
* بالنسبة ل NO SQL: المشهور جدا منها

mongodb

Cassandra

Neo4J

Redis

كل واحده منهم لها استخدامات غير الآخري وطريقة لتخزين البيانات

فمثلا mongodb تقوم بتخزين البيانات كمستندات json

مثلا redis تقوم بتخزين البيانات in-memory وهي بالمناسبة سريعه جدا وطريقة تخزين البيانات هي فقط key-value بمعني لا يوجد اعمده مجرد key والvalue الخاص بهذا key

ويمكنك صقل معلوماتك بالقرائه عن باقي الانواع
امتي استخدم sql ولا no sql في مشروعي : (العامية المصرية)

السؤال اللي كل الناس بتساله طيب انا هختار اي واحده فيهم ازي وانهي الاحسن والاسرع

جوابي هو ان مفيش واحده احسن في كل حاجه في حاجه بتكمل حاجه

ف ببساطه خالص

لو انا مشروعي كبير جدا ممكن استخدم الاثنين مع بعض او اكتر من نوع من كل واحده عادي جدا

فا مثلا انا عرفت ان redis سريعه جدا ينفع استخدمها مع mongo بحيث اني اكسب السرعه واكسب المساحه في نفس الوقت

ينفع جدا استخدم حاجه زي Cassandra مع mysql وهكذا فا دا بيكون بناءً على مشروعك ومتطلباته ولازم افكر بره الصندوق مش اكون محدد فكري كله ان لازم واحده يعني واحده
فا مثال بسيط جدا لو عندي موقع بيدخل عليه 1000 زائر كل زائر منهم بيعمل 300 query او استعلام على قاعدة البيانات في كل مره بيدخل

فا هنا المجموع هيكون 300000 عمليه للزوار دي كلها ودا رقم كبير جدا خصوصا لو ال1000 دول كلهم بيدخلوا في نفس الوقت فا الحل هنا ايه

انا لقيت ان معظم العمليات او الاستعلامات البيانات اللي بيطلبوها الزوار دائما بتكون ثابته او مش بتتغير إلا كل فتره وفتره فا لقيت ان 299 عمليه ثوابت وعمليه واحده بس محتاجه استعلام فا كل اللي هعمله هركب نوع من انواع in-memory db مثلا زي redis مثلا او ايا كان بقي على حسب استخدامك واخليها اول مره لاول شخص اتخد 299 عمليه وتخزنهم عليها ثم الباقي ياخد منها فا اصبح العدد عندي 1001 استعلام بدل 300000 استعلام تخيلتوا الفكره تم تقليص عدد الاستعلامات بنسبة خرافيه وشوفوا ايضا سرعة الموقع والاداء بتاعه اللي هيختلف


ليست هناك تعليقات:

إرسال تعليق

زياد علي

زياد علي محمد