"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > دليل شامل لطرق العرض المادية في MySQL

دليل شامل لطرق العرض المادية في MySQL

تم النشر بتاريخ 2024-08-21
تصفح:692

العروض المادية في MySQL: هل يمكن تنفيذها؟

تعد طرق العرض المادية ميزة أساسية في إدارة قواعد البيانات والتي تعمل على تحسين أداء الاستعلام وكفاءة استرجاع البيانات بشكل كبير. على الرغم من أن MySQL لا يدعم العروض المادية محليًا مثل بعض أنظمة قواعد البيانات الأخرى، إلا أن هناك حلول بديلة فعالة لتحقيق وظائف مماثلة. تتعمق هذه المقالة في ماهية العروض المتحققة، وفوائدها، وكيف يمكنك تنفيذها في MySQL.



ما هي وجهات النظر المتحققة؟

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

الفوائد الرئيسية للمشاهدات المتحققة

  1. تقوم طرق العرض المادية بتخزين نتائج الاستعلام، مما يقلل الحاجة إلى تنفيذ الاستعلامات المعقدة بشكل متكرر.
  2. إنها تسمح باسترجاع البيانات بشكل أسرع، وهو أمر بالغ الأهمية لمجموعات البيانات الكبيرة والتطبيقات في الوقت الحقيقي.
  3. من خلال التخزين المؤقت لنتائج الاستعلام، تقلل العروض المادية الحمل على خادم قاعدة البيانات.

دعونا نشرح مفهوم المشاهدات المتحققة باستخدام هذا الرسم البياني:

A Comprehensive Guide to Materialized Views in MySQL

  1. الجداول الأساسية: على الجانب الأيسر من الرسم التخطيطي، لدينا مستطيلان يسمى "الجدول الأساسي أ" و"الجدول الأساسي ب". تمثل هذه الجداول جداول قاعدة البيانات الأصلية التي تحتوي على البيانات الأولية.
  2. استعلام: في المنتصف، لدينا مستطيل يسمى "استعلام". يمثل هذا استعلامًا أو مجموعة من العمليات التي يتم إجراؤها على الجداول الأساسية لاستخلاص مجموعة نتائج محددة.
  3. العرض المادي: على الجانب الأيمن، لدينا مستطيل يسمى "العرض المادي". هذا هو المفهوم الأساسي الذي نوضحه.

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

  • الأداء: بالنسبة للاستعلامات المعقدة، خاصة تلك التي تتضمن مجموعات بيانات كبيرة أو صلات متعددة، يمكن للعرض المادي أن يحسن أداء الاستعلام بشكل كبير لأن النتائج محسوبة مسبقًا.
  • مستودع البيانات وOLAP: إنها مفيدة بشكل خاص في تخزين البيانات وسيناريوهات OLAP (المعالجة التحليلية عبر الإنترنت) حيث قد يكون لديك مجموعات أو حسابات معقدة يكون حسابها سريعًا مكلفًا.
  1. الأسهم: تظهر الأسهم الموجودة في الرسم التخطيطي تدفق البيانات. تمثل الأسهم من الجداول الأساسية إلى الاستعلام البيانات الأصلية التي تتم معالجتها. يمثل السهم من الاستعلام إلى العرض الفعلي النتائج التي يتم تخزينها.
  2. التحديث: يعد السهم المنحني الموجود في الأسفل والمسمى "تحديث" جزءًا مهمًا من فهم طرق العرض المتحققة. نظرًا لأن البيانات الموجودة في الجداول الأساسية يمكن أن تتغير بمرور الوقت، فيجب تحديث العرض الفعلي أو "تحديثه" بشكل دوري ليعكس هذه التغييرات. يمكن ضبط هذا التحديث ليحدث تلقائيًا على فترات زمنية محددة، أو يمكن إجراؤه يدويًا عند الحاجة.

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


تنفيذ طرق العرض المادية في MySQL

على الرغم من أن MySQL لا تدعم العروض الفعلية محليًا، إلا أنه يمكنك تنفيذها باستخدام مجموعة من الجداول والمشغلات. فيما يلي دليل خطوة بخطوة حول كيفية إنشاء عرض ملموس في MySQL:

الخطوة 1: إنشاء جدول أساسي

أولاً، قم بإنشاء جدول أساسي لتخزين بيانات العرض الفعلي.

CREATE TABLE materialized_view AS
SELECT column1, column2, aggregate_function(column3)
FROM base_table
GROUP BY column1, column2;

الخطوة 2: إعداد المشغلات للحفاظ على العرض المادي

للتأكد من أن العرض الفعلي يظل محدثًا مع الجدول الأساسي، تحتاج إلى إنشاء مشغلات لعمليات INSERT وUPDATE وDELETE.

إدراج المشغل

CREATE TRIGGER trg_after_insert AFTER INSERT ON base_table
FOR EACH ROW
BEGIN
INSERT INTO materialized_view (column1, column2, column3)
VALUES (NEW.column1, NEW.column2, NEW.column3);
END;

مشغل التحديث

CREATE TRIGGER trg_after_update AFTER UPDATE ON base_table
FOR EACH ROW
BEGIN
UPDATE materialized_view
SET column1 = NEW.column1, column2 = NEW.column2, column3 = NEW.column3
WHERE id = OLD.id;
END;

حذف المشغل

CREATE TRIGGER trg_after_delete AFTER DELETE ON base_table
FOR EACH ROW
BEGIN
DELETE FROM materialized_view WHERE id = OLD.id;
END;

الخطوة 3: تحديث العرض المادي

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

مثال لحدث مجدول

CREATE EVENT refresh_materialized_view
ON SCHEDULE EVERY 1 HOUR
DO
BEGIN
TRUNCATE TABLE materialized_view;
INSERT INTO materialized_view (column1, column2, aggregate_function(column3))
SELECT column1, column2, aggregate_function(column3)
FROM base_table
GROUP BY column1, column2;
END;

طرق عرض مادية باستخدام أداة إنشاء قواعد البيانات السريعة

على الرغم من أن فهم SQL وتنفيذ الاستعلامات الفعالة أمر بالغ الأهمية، إلا أن إنشاء قاعدة بيانات كاملة يتطلب معرفة كبيرة بـ SQL. وهنا يأتي دور منشئي قواعد البيانات السريعة مثل Five.

في خمسة، يمكنك تحديد مخطط قاعدة البيانات الخاصة بك باستخدام MySQL، بما في ذلك العمليات المتقدمة. يوفر Five قاعدة بيانات MySQL لتطبيقك وينشئ واجهة مستخدم تلقائية، مما يسهل التفاعل مع بياناتك.

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

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

يسمح لك Five أيضًا بكتابة وظائف JavaScript وTypeScript مخصصة، مما يمنحك المرونة اللازمة لتنفيذ منطق الأعمال المعقد. يعد هذا أمرًا بالغ الأهمية للتطبيقات التي تتطلب أكثر من مجرد عمليات CRUD (الإنشاء والقراءة والتحديث والحذف).

بمجرد إنشاء تطبيقك، يمكنك نشر تطبيقك على بنية أساسية سحابية آمنة وقابلة للتطوير ببضع نقرات فقط. يتيح لك ذلك التركيز على التطوير دون القلق بشأن تعقيدات النشر السحابي.

إذا كنت جادًا بشأن العمل مع MySQL، فجرّب Five. قم بالتسجيل للوصول المجاني إلى بيئة التطوير عبر الإنترنت الخاصة بـ Five وابدأ في إنشاء تطبيق الويب الخاص بك اليوم.


Build Your Database In 3 Steps
Start Developing Today

الحصول على إمكانية الوصول الفوري



A Comprehensive Guide to Materialized Views in MySQLمثال لتطبيق مبني على قاعدة بيانات MySQL باستخدام Five

اعتبارات للعروض المادية في MySQL

  1. التخزين: تستهلك المشاهدات المادية مساحة تخزين إضافية. تأكد من أن قاعدة البيانات الخاصة بك بها مساحة كافية لاستيعاب وجهات النظر المتحققة.
  2. الصيانة: صيانة العروض المادية وتحديثها بانتظام لضمان اتساق البيانات ودقتها.
  3. الفهرسة: استخدم الفهرسة المناسبة في جداول العرض الفعلية لتحسين أداء الاستعلام بشكل أكبر.

خاتمة

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


الأسئلة الشائعة

س: هل يدعم MySQL العروض المادية محليًا؟لا، لا يدعم MySQL العروض المادية محليًا، ولكن يمكنك تحقيق وظائف مماثلة باستخدام الجداول والمشغلات.

س: كم مرة يجب أن أقوم بتحديث العرض الفعلي؟يعتمد تكرار التحديث على متطلبات التطبيق الخاص بك. بالنسبة للتطبيقات في الوقت الفعلي، قد تحتاج إلى تحديثات أكثر تكرارًا، بينما قد تكون التحديثات الأقل تكرارًا كافية لتطبيقات المعالجة المجمعة.

س: ما هي البدائل لطرق العرض المادية في MySQL؟تتضمن البدائل استخدام الجداول المؤقتة، أو جداول التخزين المؤقت، أو تحسين الاستعلامات من خلال الفهرسة وإعادة هيكلة الاستعلام.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/domfive/a-comprehensive-guide-to-materialized-views-in-mysql-2dh5?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3