تعد طرق العرض المادية ميزة أساسية في إدارة قواعد البيانات والتي تعمل على تحسين أداء الاستعلام وكفاءة استرجاع البيانات بشكل كبير. على الرغم من أن MySQL لا يدعم العروض المادية محليًا مثل بعض أنظمة قواعد البيانات الأخرى، إلا أن هناك حلول بديلة فعالة لتحقيق وظائف مماثلة. تتعمق هذه المقالة في ماهية العروض المتحققة، وفوائدها، وكيف يمكنك تنفيذها في MySQL.
العرض المادي هو كائن قاعدة بيانات يحتوي على نتائج الاستعلام. على عكس طريقة العرض القياسية، التي تولد النتائج ديناميكيًا في كل مرة يتم الاستعلام عنها، تقوم طريقة العرض المادية بتخزين بيانات نتيجة الاستعلام فعليًا، وبالتالي تحسين الأداء للاستعلامات المعقدة والمستهلكة للموارد.
دعونا نشرح مفهوم المشاهدات المتحققة باستخدام هذا الرسم البياني:
العرض المادي هو كائن قاعدة بيانات يحتوي على نتائج الاستعلام. على عكس طريقة العرض العادية، التي تقوم بتشغيل الاستعلام في كل مرة يتم الوصول إليها، تقوم طريقة العرض المادية بتخزين مجموعة النتائج فعليًا، مثل الجدول. وهذا له العديد من المزايا:
تكون المفاضلة مع طرق العرض الفعلية بين أداء الاستعلام وحداثة البيانات. إنها توفر نتائج استعلام سريعة ولكن على حساب احتمال وجود بيانات قديمة قليلاً بين عمليات التحديث.
على الرغم من أن MySQL لا تدعم العروض الفعلية محليًا، إلا أنه يمكنك تنفيذها باستخدام مجموعة من الجداول والمشغلات. فيما يلي دليل خطوة بخطوة حول كيفية إنشاء عرض ملموس في MySQL:
أولاً، قم بإنشاء جدول أساسي لتخزين بيانات العرض الفعلي.
CREATE TABLE materialized_view AS
SELECT column1, column2, aggregate_function(column3)
FROM base_table
GROUP BY column1, column2;
للتأكد من أن العرض الفعلي يظل محدثًا مع الجدول الأساسي، تحتاج إلى إنشاء مشغلات لعمليات 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;
اعتمادًا على متطلبات التطبيق الخاص بك، قد ترغب في تحديث العرض الفعلي بشكل دوري للتأكد من أنه يعكس أحدث البيانات. يمكن القيام بذلك باستخدام حدث مجدول أو وظيفة كرون.
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
الحصول على إمكانية الوصول الفوري
س: هل يدعم MySQL العروض المادية محليًا؟لا، لا يدعم MySQL العروض المادية محليًا، ولكن يمكنك تحقيق وظائف مماثلة باستخدام الجداول والمشغلات.
س: كم مرة يجب أن أقوم بتحديث العرض الفعلي؟يعتمد تكرار التحديث على متطلبات التطبيق الخاص بك. بالنسبة للتطبيقات في الوقت الفعلي، قد تحتاج إلى تحديثات أكثر تكرارًا، بينما قد تكون التحديثات الأقل تكرارًا كافية لتطبيقات المعالجة المجمعة.
س: ما هي البدائل لطرق العرض المادية في MySQL؟تتضمن البدائل استخدام الجداول المؤقتة، أو جداول التخزين المؤقت، أو تحسين الاستعلامات من خلال الفهرسة وإعادة هيكلة الاستعلام.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3