صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 26

الموضوع: [mysql] الطريقة المثالية للاستخدامها ومرعاتها

  1. #1

    [mysql] الطريقة المثالية للاستخدامها ومرعاتها



    السلام عليكم

    بصراحة ياخواني من فترة وأنا اقوم بتنزيل بعض الاسكربتات العربية و الاجنبية ومشاهدة طريقة تعامل بعض المبرمجين لقواعد البيانات من نوع MYSQL ... والصراحة استغربت كثيرا ولازلت استغرب من عدم اهتمام المبرمج في طريقة تحديد المتطلبات والقياسات الخاصة بالتخزين في قاعدة بيانات برنامجه ..
    مما يجعل احجامها ومقايسها خاطئة ولا تأدي الغرض المطلوب منها بغض النظر عن اسلوب البرمجه وحتى لو كانت صحيحة ...

    لذلك قررة ان اضع هذا الموضوع علا وعسى يستفيد منه اخواننا المبرمجين وتنفعهم في تحسين ادارء برامجهم ..
    وإن شاء الله ما راح اطول في الكلام واحاول اختصر قدر الامكان ....

    كما هو معروف ان اي قاعدة بيانات بما فيها mysql تطلب منك وضع مقايس خاصة بتخزينك للبيانات مثل نوع العمود المطلوبة INT,char,text مثلا ... وكل واحدة من هذي الاعمدة لها مقياس خاص بها مثل int مقاساتها smallint,mediumint,bigint ... الخ وكل من هذه المقايس لها حجم مخصص لها
    مثل:-
    TINYINT=1 BYTES
    SMALLINT= 2 BYTES
    MEDIUMINT=3 BYTES
    BIGINT=8 BYTES
    وهكذا بالنسبة لباقي المقاسات ...

    قد يرى البعض ان هذا الامر بسيط ولا يحتاج حتى التفكير به (تحمل هم شويت بايتات لا ودت ولا جابت) ويكفي مثلا ان اعرف ان smallint لتخزين الارقام الصغيرة من سالب –32768 الى موجب 32767 هذا بعلامة وبدون علامة (UNSIGNED) ستكون من صفر الى 65535 ...
    أو مثلا يأتيك واحد ويقولك ماتفرق عندي بشي اخليه INT كله واحد في النهاية بتم تخزين الرقم ولو كان صغير أو كبير ...

    وهنا اقول له لو فكرة قليلا لوجدة ان اهمالك لقياسات التخزين ممكن ان يضر ببرنامج بصورة مباشرة أو غير مباشرة .. لغيرت رائك بذلك ولتزمت بهذه المعاير إذا كنت تهتم بنجاح برامجك ...

    كيف ؟؟

    نبدء بكيف ... وبعطي مثال وهذا المثال بسيط عن سؤ اختيار قياسات التخزين الملائمة في MYSQL ...
    وهي جدول في قاعدة تحتوي على 5 اعمدة خاصة بالارقام العادية والصغيرة
    وطبعا صاحبنا المبرمج حدد لها كلها INT بما انها للارقام فقط ...

    ملاحظة انا اعرف ان الميجا = 1024 كيلو و الكيلو = 1024 بايت لكن هني وللتوضيح فقط راح نقول انه 1000 فقط يعني النتائج راح تكون مختلفة بشكل بسيط .. وهذا حتى يمكن للكل الاستيعاب

    الـINT في mysql يخصص مساحة تخزين 4 بايت للعمود ...
    يعني لو فرضنا ان لديك في هذا الجدول 250.000 مأتين وخمسين الف صف (لاحظ اني ما قلت مليون فقط 250 الف)
    ومثلا قام احد المستخدمين بالبحث بها فانه سيستهلك من عمليت اجراء البحث من الذاكرة (RAM) خمسة ميجا
    4بايت×250.000صف=1.000.000 بايت (1ميجا) لكل عمود
    1.000.000بايت×5اعمدة=5.000.000 بايت (5ميجا) لكل الاعمدة الخمسة

    شووووف البايت وين وصل وهذا لشخص واحد ماذا لو كان 4 اشخاص في نفس الوقت (لاحظ اني ما قلت 40 او 400 شخص فقط 4 اشخاص)
    راح يكون النتيجة:- 5.000.000بايت×4اشخاص=20.000.000 بايت (20ميجا)

    اليس هذا كارثة لبرنامجك ... الا يسبب بطئ او يعلق وما يتابع البرنامج المطلوب منه اوليست مشكلة عندما تظهر رسالة مثلا في حال نقل نسخة منه او عمل طلب له حتى لو برمجته قوية وصحيحة مثل رسالة
    Fatal error: Allowed memory size of 15000000 bytes exhausted
    اذا كان المخصص هو 15 ميجا مثلا والجدول اكبر من هذا ..

    بينما لو قمت باختيار المقاسات الصحيحة مثل SMALLINT
    الـ SMALLINT في mysql يخصص مساحة تخزين 2 بايت للعمود

    اي ان نفس المعادلة السابقة ستكون نتائجه على 4 اشخاص 10 ميجا يعني نصف ما استهلكه الاول ولا بتكون هناك مشكلة استهلاك الميموري او يقفل ...

    هذا بالنسبة للارقام فما بالكم لو دخلت بباقي البلاوي الزرقة مثل char و varchar
    الـchar يخزن بعدد الارقام المدخلة بشرط ما يزيد عن 255
    char(5) = راح ياخذ 5 بايت
    اما الـvarchar هذا بعدد الحروف المضافة + 1 بايت بشرط ما يزيد عن الرقم المخصص له ولا يكون اكثر من 255
    varchar(5) = لو تم ادخال مثلا abdc راح يخزن 5 بايت 4 حق الحروف + 1 بايت


    الخلاصة عزيزي المبرمج :-------
    إذا كنت في صدد عمل مشروع كبير يتطلب منك قاعدة بيانات ضخمة قبل ان تضع اكوادك وتجهز قواعدك تأكد من متطلباتك والقياسات التي تحتاجها في قاعدة بياناتك ولا تحاول ان تخصص اكثر من ما تحتاجه من القاعدة حتى لا يتسبب لك ذلك بمشاكل بسبب اخذ مساحة كبيرة على الفاضي
    يعني مثلا لو كان عندك عمود رقمي من اجل وضع رقم احادي او مزدوج لا تخصص له smallint بالافضل لك هو TINYINT على سبيل المثال
    SMALLINT= 2 bytes
    TINYINT= 1 bytes
    فمافي داعي تضيع 2 بايت في شي ممكن تضعه في 1 بايت لانه ممكن راح ياثر في الاحجام الكبيرة ويضاعف الحجم على الفاضي ... وانت محتاج مثلا هذا العمود لرقم مزدوج يعني من 10 إلى 99 ...

    وفي النهاية اضع لكم المتطلبات والقياسات كما وضعتها موقع MYSQL والتي يجب على كل مستخدم لها مراعات المعاير الخاصة بها

    هذه نظرة عامة الانواع العددية تقدر تتعرف منها على نوع المناسب للارقامك في القاعدة
    http://dev.mysql.com/doc/mysql/en/nu...-overview.html
    وهذه متطلبات التخزين المخصصه والتي يجب مراعتها وعدم استهلاك اكثر من حاجتك لها
    http://dev.mysql.com/doc/mysql/en/st...uirements.html

    وإلي يستخدمو قواعد بيانات اخرى غير MYSQL عليهم ان يراجعو التعليمات الخاصة بالقاعدة إلي يستخدمونها ويسألو بخصوص القياسات المناسبة والاحجام إلي تخصصه لهم القاعدة وإلي يحتاجونها

    وأرجو اني اكون لخصت الكلام وعطيتكم الزبدة منها ... والاهم تكونو فهمتوني
    مع تمنياتي لكم بالتوفيق والنجاح في اعمالكم ...

    وشكرا





    __________________
    موت الصالح راحة لنفسه * وموت الطالح راحة للناس


  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2003
    المشاركات
    746


    رائع جزاك الله ألف خير :nice:






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jan 2005
    المشاركات
    53


    موضوع ممتاز على مستوى عالي ..
    اتمنى اثرائنا بالمزيد من هذه المواضيع ..






  4. #4
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    شكراً لك اخي الكريم ..

    والى الامام..




    وخالص المودة ،،





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  5. #5
    فضلاً اكتب اسمك الحقيقي هنا
    زائرداعية


    شكرا على الموضوع القيم






  6. #6


    السلام عليكم

    اشكركم اخوني على الرد والمشاركة ...

    وشكرا





    __________________
    موت الصالح راحة لنفسه * وموت الطالح راحة للناس

  7. #7
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2005
    المشاركات
    518


    معلومات قيمة و مفيدة فعلا

    يعطيك العافية





    __________________
    اللهم أعز الاسلام و المسلمين

  8. #8
    عضو فعال جدا
    تاريخ التسجيل
    Dec 2004
    المشاركات
    4,037


    جزاك الله خيرا أخي مسالم
    موضوع هام جدا ويحتاج إلى توعية فعلا .. وأنا سعيد جدا أنك فعلا تكلمت في منطقة لا يفكر فيها الكثيرون ..
    لأن الاعتناء بقواعد البيانات لا يقل أهمية عن الاهتمام بالكود البرمجي ..

    في انتظار موضوع عن الـindex





    __________________
    ....
    محمد حسام
    انترنت بلس

  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Apr 2004
    المشاركات
    449


    شكراً اخي الفاضل ..





    __________________
    لا إله إلا انت سبحانك إني كنت من الظالمين ..



    (ترتيب وإحصائيات موقعك في رتب: أول موقع عربي للإحصائيات)
    الزمزمي للتصميم

  10. #10
    عضو فعال جدا
    تاريخ التسجيل
    Feb 2003
    المشاركات
    2,047


    بارك الله فيك
    مقال رائع و من أروع ما قرأت ما شاء الله
    ركزت على نقطة كثير ما يتجاهلها المبرمجين ( اجانب و عرب )


    شكرا لك





    __________________
    -{Only God Can Judge Me}-
    القانون فوق الجميع و الجميع يموت بالجوع

  11. #11
    عضو نشيط جدا
    تاريخ التسجيل
    May 2002
    المشاركات
    389


    موضوع قيم ورائع أخي الكريم





    __________________
    PixStyle.com

  12. #12


    السلام عليكم

    الاخوى الاعزاء مشكورين على المشاركة

    الاخ إنترنت بلس ...
    فعلا خاصية index وإلي تستخدم لعمل فهارس له تأثير كبير لو حبيت تعرف شو الدور إلي يسويه في مجال "قياسات الاحجام" في mysql

    فان الـindex في احد الاعمدة راح ياخذ 64 بايت، لكن في المقابل راح يفيدك هل فهارس في عمليات البحث والمطابقة والاستعلام مثلا ...

    هذا الحجم قراته من كتاب MySQL Language Reference و كتاب MySQL Certification Study Guide
    راح تجدهم في قائمة الكتب هنا http://dev.mysql.com/books/ لو تحب تقتني احدهم
    وممكن تكون مذكورة في الموقع لأني ما بحثت عنها

    كما انصح بقرائة هذا المقال إلي تطرق لموضوع الفهاريس من موقع "البوابة العربية" لكاتبه الاستاذ rafia
    http://www.arabportal.net/news.php?action=view&id=74

    على العموم
    أنا حاولت اختصر الموضوع يوم كتبته لاعطاء الفكرة العامة عن المتطلبات والقياسات ... وأبين مدى ضرورة مراجعتها والاهتمام بها ..

    وان شاء الله راح احاول افتح معكم حوار نقارن فيها بعض جداول قاعدة بيانات ...

    وشكرا





    __________________
    موت الصالح راحة لنفسه * وموت الطالح راحة للناس

  13. #13
    عضو فعال
    تاريخ التسجيل
    Jun 2003
    المشاركات
    1,143


    تحفة اخي الفاضل ، باركك الله .





    __________________
    سبحان الله و بحمده سبحان الله العظيم .
    random-x@hotmail.com
    -------------
    بين الفينة و الأخرى ... لماماً أظهر !

  14. #14
    عضو نشيط جدا
    تاريخ التسجيل
    Mar 2003
    المشاركات
    305


    جزاك الله كل خير
    موضوع مهم كنت غافل عنه ...






  15. #15
    عضو فعال
    تاريخ التسجيل
    Feb 2004
    المشاركات
    1,431


    ما شاء الله
    يعطيك ربي الف عافية فعلاً درس رائع و معلومات اروع
    لا عدمناك يا الغالي ..
    تحياتي
    ahmad





    __________________
    لتواصل

    بريد + ماسنجر

    admin( @ )tec4serv.com

    3rbhost
    سابقاً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض