الفرق بين MySQL و postgreSQL

الناقل : mahmoud | الكاتب الأصلى : dr-dre67 | المصدر : www.boosla.com

السلام عليكم


مقدمة

اول شي يجب ان نعرفه هو ان كل من فريق mysql و فريق الpostgreSQL يعمل من اجل ان يجعل انتاجه هو الأفضل و يجب ان نعرف ايضا ان لكل من قواعد البيانات التالية مستعملين و ذلك حسب رغبة المستعمل و حسب متطلبات البرنامج او المشروح المطلوب انجازه فإذار اردت السرعة فعليك بالmysql اما اذا اردت اكثر امكانيات فعليك بالPostgreSQL


جدول مقارنة بين القاعدتين

 

 

المقارنات

 

PostgreSQL
mySQL
تكامل استعلامات SQL بعض الإستعلامات لا تعمل تسمح ببعض الإستعلامات المعروفة (standard SQL)
السرعة بطيئ سريع
Sub-selects نعم لا
Transactions نعم نعم في حال استعمال جداول من نوع innoDB
نسخ قواعد بيانات نعم نعم
قابلية Foreign Keys نعم  لا
Views

نعم   

لا
Stored procedures نعم لا
Triggers نعم لا
Unions نعم لا
Full joins نعم لا
Constraints نعم لا
Windows support نعم نعم
Vacuum نعم لا
ODBC نعم نعم
JDBC نعم نعم
Different table types لا نعم





لماذا اختار MySQL

كل مبرمج و كل صاحب مشروع يريد ان يكون مشروعه ناجح و يريد ان ينفذ كل نقاط مشروعه كاملة : ثم يجب ان نستعرض احتياجات المشروع و متطلباته و مدى بساطته ( يقصد ببساطة هنا : بساطة الإستعلامات الSQL ) بالتالي يجب استعمال mySQL اولا لأنها تلبي هذه البساطة و ثانيا لأنها اسرع من الpostgreSQL بدرجات
انت تستعمل mySQL كقاعدة بيانات لمشروعك اذن انت ترتكز على ادارة اللإستعلامات ( insert , delete , update ) من الكود البرمجي لمشروعك و لا حاجة لك ان تكون ادارة الإستعلامات من قاعدة البيانات (postgreSQL) و بالتالي ستكون هذه الأدراة للإستعلامات اسرع من ادارة الإستعلامات في الpostgreSQL

بماذا تمتاز الMySQL ؟

[*]mysql اسرع من postgreSQL[*]تصميم الجداول اسهل[*]ادارة الإستعلامات من الكود البرمجي[*]الإستنساخ في الmySQL يتم مراقبته[*]لا تشترط الmySQL عملية الإفراغ للمحتوى او ما يسمى بالVacuum


لماذا اختار postgreSQL

يستعمل المبرمجين الpostgreSQL لإحساسهم الشديد بأن الذي يريدونه غير متوفر في الmySQL و بالتالي فهم لا يبحثون على ما تمتاز به الmysql من ( سرعة , ... ما يتميز به الmySQL) فهم (المبرمجين) يبحثون عن اشياء اخرى لا تتوفر الا في الpostgreSQL

مثال : انا استعمل في مشروعي بعض الForeign Keys او الtrigges او بعض الviews و كل هذع غير مسموح بها في الmysql و كل هذه ايضا تغنين عن كثير من الخطوات التي سأقوم بها في الكود البرمجي و الفرق واضح بين الmySQL و الpostgreSQL اذ انه في الmySQL لا يمكن تنفيذ الsub-select و بذلك الpostgreSQL تدعم اكثر نوعيات من الإستعلامات و الANSI SQL مما يمكنها من عمل دوال SQL معقدة للغاية

ما يميز الpostgreSQL

[*]تصميم الجدوال اصعب من الmySQL[*]بعيد كل البعد عن بقية القواعد مثل الmssql و الoracle[*]استعمال الأجراءات المخزنة (procedures)[*]استعمال اللغات الأجرائية في السيرفر[*]Transactions[*]التعامل مع البيانات الجغرافية


روابط مفيدة

http://www.postgresql.org/docs/7.4/static/tutorial-inheritance.html

http://builder.com.com/5100-6388-1045125.html