السلام عليكم
مقدمة
اول شي يجب ان نعرفه هو ان كل من فريق 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