[{"data":1,"prerenderedAt":158},["ShallowReactive",2],{"seo-verification":3,"blog-postgresql-vs-mysql-ar":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":20,"featuredImage":22,"bgImage":23,"posterImage":24,"relatedSolution":25,"intro":28,"sections":29,"ctaTitle":111,"ctaBody":112,"ctaButton":113,"ctaUrl":114,"relatedPosts":115},100,"postgresql-vs-mysql","PostgreSQL مقابل MySQL: أي قاعدة بيانات لـ VPS الخاص بك؟","PostgreSQL مقابل MySQL على VPS: مقارنة أنواع البيانات وJSON والمعاملات والتناسخ والأداء لاختيار قاعدة بياناتك المستضافة ذاتيًا.",8,300,false,"2026-03-12T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},5,"مقارنات","comparatif","bg-info\u002F10 text-info",[21],{"id":16,"name":17,"slug":18,"color":19,"icon":18},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fpostgresql-vs-mysql-poster.svg",{"categorySlug":26,"appSlug":27},"bases-de-donnees","postgresql","اختيار قاعدة بياناتك يعني الالتزام بمخططك لسنوات. يراهن PostgreSQL على الصرامة وقابلية التوسيع، وMySQL على البساطة والانتشار. إليك كيفية القرار واستضافتها ذاتيًا بشكل سليم على VPS.",[30,34,44,47,69,108],{"type":31,"title":32,"body":33},"h2","لماذا تستضيف قاعدة بياناتك على VPS الخاص بك","استضافة قاعدة بياناتك ذاتيًا على VPS تمنحك سيطرة كاملة على إصدار المحرك، ومعاملات الضبط (tuning)، والتشفير، وزمن استجابة الشبكة نحو تطبيقك. وبدلًا من تحمّل حدود الاتصالات والتكلفة الإضافية لقاعدة بيانات مُدارة، تضع قاعدة البيانات والتطبيق معًا على الشبكة الخاصة نفسها للحصول على استجابات دون المللي ثانية. يتفوّق PostgreSQL في المخططات المعقّدة والقيود الصارمة وJSONB القابل للفهرسة والاستعلامات التحليلية والإضافات (PostGIS، pg_trgm، البحث في النص الكامل). أما MySQL (أو MariaDB) فيظل لا يُضاهى في البساطة، مدعوم جيدًا من أنظمة إدارة المحتوى وأطر PHP، مع قراءات سريعة. يعتمد الخيار الصحيح على طبيعة بياناتك، لا على تفضيل مبدئي.",{"type":35,"title":36,"items":37},"ul","ما الذي تقدّمه الاستضافة الذاتية لقاعدة بياناتك",[38,39,40,41,42,43],"زمن استجابة أدنى بوضع قاعدة البيانات على الشبكة الخاصة نفسها للتطبيق","سيطرة كاملة على الضبط: `shared_buffers` و`innodb_buffer_pool_size` والحد الأقصى للاتصالات","حرية اختيار الإصدار وجدول التحديث","نسخ احتياطية منطقية وفيزيائية مجدولة حسب احتياجاتك الفعلية","تناسخ وقراءة موزّعة مُعدَّان على طريقتك","تشفير أثناء السكون ووصول مقيَّد بالشبكة الداخلية للـ VPS فقط",{"type":31,"title":45,"body":46},"متطلبات قاعدة بيانات على VPS","قاعدة بيانات تطوير أو موقع صغير تعيش بأريحية على 1 vCPU و1 غيغابايت من الذاكرة. في الإنتاج، القاعدة الذهبية هي تحجيم الذاكرة كي يتّسع فهرس العمل في التخزين المؤقت: استهدف 2 إلى 4 غيغابايت لـ PostgreSQL (`shared_buffers` حوالي 25% من الذاكرة) و`innodb_buffer_pool_size` يغطي مجموعة بياناتك النشطة في MySQL. قرص SSD\u002FNVMe غير قابل للتفاوض بالنسبة إلى عمليات الكتابة. جهّز Docker وCompose، ووحدة تخزين دائمة مخصصة للبيانات، والأهم: لا تكشف منفذ قاعدة البيانات على الإنترنت أبدًا. يتم الوصول عبر شبكة Docker الداخلية أو نفق SSH.",{"type":48,"title":49,"steps":50},"steps","نشر PostgreSQL (أو MySQL) على VPS باستخدام Docker",[51,54,57,60,63,66],{"title":52,"body":53},"إنشاء وحدة تخزين دائمة","عرِّف وحدة تخزين باسم `pgdata` (أو `mysqldata`) في Compose. لا تخزّن البيانات أبدًا في الطبقة الزائلة للحاوية: يجب ألا يدمّر `docker compose down` قاعدة بياناتك.",{"title":55,"body":56},"ضبط الخدمة والأسرار","عرِّف الصورة `postgres:16` أو `mysql:8`، وأدخِل بيانات الاعتماد عبر ملف `.env` (لا تضعها نصًا صريحًا في ملف compose)، واربط المنفذ محليًا فقط: `127.0.0.1:5432:5432`. يجب ألا تكون قاعدة البيانات قابلة للوصول من الخارج.",{"title":58,"body":59},"التشغيل والتحقق","نفِّذ `docker compose up -d` ثم اختبر الاتصال داخليًا بـ `docker compose exec db psql -U app -d maBase` (أو `mysql -u`). تحقّق من الترميز (`UTF8`\u002F`utf8mb4`) منذ الإنشاء لتجنّب المفاجآت.",{"title":61,"body":62},"تطبيق الضبط","ركِّب ملف إعدادات مخصصًا لضبط `shared_buffers` و`work_mem` و`max_connections` (PostgreSQL) أو `innodb_buffer_pool_size` و`max_connections` (MySQL) وفقًا للذاكرة الفعلية للـ VPS. أعِد تشغيل الخدمة للتطبيق.",{"title":64,"body":65},"إعداد النسخ الاحتياطية","جدوِل تفريغًا منتظمًا عبر cron: `pg_dump` أو `mysqldump` مضغوطًا ومنسوخًا خارج الـ VPS. اختبر الاستعادة: نسخة احتياطية لم تُستعَد أبدًا ليست نسخة احتياطية.",{"title":67,"body":68},"تأمين وصول التطبيق","اجعل التطبيق وقاعدة البيانات يتواصلان عبر شبكة Docker الداخلية فقط. للوصول الإداري عن بُعد، استخدم نفق SSH بدلًا من فتح المنفذ. أنشئ مستخدمًا للتطبيق بصلاحيات محدودة، منفصلًا عن المستخدم الخارق (superuser).",{"type":70,"headers":71,"rows":75},"comparison",[72,73,74],"المعيار","PostgreSQL","MySQL \u002F MariaDB",[76,80,84,88,92,96,100,104],[77,78,79],"نموذج البيانات","غني: أنواع مخصصة، مصفوفات، JSONB","متين، أكثر كلاسيكية",[81,82,83],"دعم JSON","JSONB قابل للفهرسة وعالي الأداء","JSON موجود، فهرسة أكثر محدودية",[85,86,87],"الامتثال لـ SQL \u002F القيود","صارم جدًا (CHECK، الأنواع، معاملات DDL)","أكثر تساهلًا",[89,90,91],"البحث في النص الكامل \u002F الجغرافي","أصلي + PostGIS، pg_trgm","أساسي، إضافات طرف ثالث",[93,94,95],"قراءات بسيطة عالية التردد","جيدة جدًا","ممتازة ومُحسَّنة جدًا",[97,98,99],"التناسخ","بثّي، منطقي","سيّد-تابع، سهل الإعداد",[101,102,103],"منظومة CMS\u002FPHP","جيدة","المرجع (WordPress، إلخ)",[105,106,107],"بصمة الذاكرة","معتدلة","خفيفة إلى معتدلة",{"type":109,"body":110},"tip","أيًّا كان المحرك، لا تدع تطبيق ويب يفتح اتصالًا مباشرًا لكل طلب: في PostgreSQL ضع PgBouncer كمُجمِّع (pooler)، وفي MySQL اضبط `max_connections` مع تجميع (pool) من جهة التطبيق. الـ VPS الذي ينهار تحت الحِمل يعاني في الغالب من مشكلة اتصالات غير مُجمَّعة أكثر من نقص القدرة الخام.","قاعدة بيانات عالية الأداء مستضافة ذاتيًا","مع VPS Cloud من ServOrbit وقالب Docker الخاص به، انشر PostgreSQL أو MySQL على قرص NVMe، معزولًا عن الشبكة العامة وجاهزًا لنسخك الاحتياطية المؤتمتة.","اضبط VPS قاعدة البيانات الخاص بي","\u002Fvps-cloud",[116,130,144],{"id":117,"slug":118,"title":119,"excerpt":120,"readTime":11,"views":121,"isPinned":13,"publishedAt":122,"category":123,"categories":124,"featuredImage":22,"bgImage":23,"posterImage":126,"relatedSolution":127},4,"coolify-vs-dokploy","Coolify مقابل Dokploy: أي أداة تختار للنشر على خادم VPS الخاص بك؟","مقارنة شاملة بين Coolify وDokploy: الميزات، والبساطة، وحالات الاستخدام. أي أداة تختار لاستضافة تطبيقاتك ونشرها على خادم VPS؟",2600,"2026-06-07T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[125],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Fcoolify-vs-dokploy-poster.svg",{"categorySlug":128,"appSlug":129},"deploiement","coolify",{"id":131,"slug":132,"title":133,"excerpt":134,"readTime":11,"views":135,"isPinned":13,"publishedAt":136,"category":137,"categories":138,"featuredImage":22,"bgImage":23,"posterImage":140,"relatedSolution":141},93,"n8n-vs-node-red","n8n مقابل Node-RED: أي أداة أتمتة مستضافة ذاتياً تختار؟","n8n أم Node-RED لأتمتة سير عملك على خادم VPS؟ مقارنة تقنية، ومتطلبات Docker، ودليل النشر المستضاف ذاتياً.",641,"2026-03-19T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[139],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Fn8n-vs-node-red-poster.svg",{"categorySlug":142,"appSlug":143},"automatisation","n8n",{"id":145,"slug":146,"title":147,"excerpt":148,"readTime":149,"views":150,"isPinned":13,"publishedAt":151,"category":152,"categories":153,"featuredImage":22,"bgImage":23,"posterImage":155,"relatedSolution":156},94,"supabase-vs-appwrite","Supabase مقابل Appwrite: أي واجهة خلفية مستضافة ذاتياً لخادم VPS الخاص بك؟","Supabase أم Appwrite مستضافة ذاتياً على خادم VPS؟ مقارنة الواجهة الخلفية (المصادقة، وقاعدة البيانات، والتخزين)، ومتطلبات Docker، ودليل نشر كامل.",9,678,"2026-03-18T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[154],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Fsupabase-vs-appwrite-poster.svg",{"categorySlug":26,"appSlug":157},"supabase",1785097297562]