Skip to Sidebar Skip to Content
اقرأ-تك اقرأ-تك
ضيفنا الكريم

  • تسجيل الدخول
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©
Materialized View
Materialized View
  • Databases
  • Backend
  • Web Development

Materialized View

الـ Materialized View مش مجرد Query بتتنفذ كل مرة زي الـ Views العادية. ولكن هي بتنفذ الـ Query مرة واحدة بس وتخزن النتيجة فعليًا في جدول جديد جوا الـ Database.

  • Mahmoud Youssef by Mahmoud Youssef
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • ٨ سبتمبر، ٢٠٢٤
  • •
  • 1 min read
  • Share on X
  • Share on Facebook
  • Share on LinkedIn
  • Share on Pinterest
  • Email

المقدمة

في عالم قواعد البيانات، دايمًا المشكلة بتكون في كيفية تحسين الـ Performance بتاعة الـ Queries اللي شغالين عليها وفيه أكتر من طريقة لتحسين الأداء وتسهيل الوصول للبيانات وكنا اتكلمنا عن بعضهم قبل كده.

واحدة من الطرق دي هي Views. فالـ View هو عبارة عن Query بتجيب البيانات من جدول أو أكتر وتقدمهالك كأنها جدول مستقل تماماً. يعني مثلاً، لو عندك جدول فيه الكتب وجدول تاني فيه المؤلفين، ممكن تعمل View يعرض لك البيانات المهمة من الجدولين دول مع بعض ويكون فيه بس الـ Columns اللي مجتاجها.

الـ View العادية ممتازة لما يكون عندك بيانات بتتغير بشكل مستمر، لأنها دايمًا بتجيب البيانات الأحدث. لكن المشكلة بتظهر امتة ؟ المشكلة بتظهر لو عندنا كمية كبيرة وضخمة من البيانات أو الـ Query معقدة شويتين فبالتالي هيبقى فيه بطء شديد في الأداء ككل. وهنا بيجي دور الـ Materialized Views كحل سحري يقدر يوفرلنا الأداء المطلوب.


Materialized View

الـ Materialized View مش مجرد Query بتتنفذ كل مرة زي الـ Views العادية. ولكن هي بتنفذ الـ Query مرة واحدة بس وتخزن النتيجة فعليًا في جدول جديد جوا الـ Database.

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

فلو بنتعامل مع قواعد بيانات كبيرة أو Queries معقدة شوية، وكان عندنا Query على سبيل المثال محتاجة بيانات من أكتر من جدول وبتنفذ عمليات حسابية معقدة، في الحالة دي كل مرة بنطلب فيها البيانات دي السيرفر هيستهلك وقت ومجهود كبير. ولكن مع الـ Materialized View، احنا بنخزن النتيجة مرة واحدة وبعد كده أي Query بتيجي للبيانات بيكون أسرع بكتير لاننا بس بنقرأ الجدول اكنه جدول جديد موجود في الـ Database.

طب الكلام ده جميل جدًا لحد كده ، ولكن احنا ناسيين نقطة مهمة .. ايه اللي هيحصل في الجدول ده لو الجداول القديمة فيها قيم اتغيرت أو بيانات اتحذفت أو بيانات جديدة انضافت ؟

Materialized View

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

فيه طرق مختلفة للتحديث، أشهرها:

  1. الـ Complete Refresh: وفي الطريقة دي كل اللي بنعمله اننا بنمسح البيانات المخزنة القديمة ونرجع بكل بساطة ننفذ الـ Query من أول وجديد عشان نجيب البيانات الحديثة كلها. فدي بتبقى مفيدة جدًا لو التغييرات على البيانات الأصلية بتبقى كبيرة.
  2. الـ Incremental Refresh: وفي الطريقة دي كل اللي بنعمله اننا بنحدث بس البيانات اللي اتغيرت من آخر مرة عملنا فيها تحديث للـ Materialized View. يعني لو اتضافت أو اتعدلت بيانات جديدة، التحديث ده بس اللي هيضيفها أو يعدلها بس من غير ما يمسح أي بيانات القديمة.

إمتى نستخدم الـ Materialized Views؟

الـ Materialized Views بتكون مفيدة في سيناريوهات متعددة زي:

هذا المقال مخصص للأعضاء المنتسبين لخطط الاشتراك المدفوعة فقط

اشترك الآن وتصفح كافة المقالات المميزة واستمتع بمحتوى حصري وابق على اطلاع دائم بالتحديثات المستمرة.

اشترك الآن 🚀

هل لديك حساب؟ تسجيل الدخول

في هذا المقال
اشترك الآن واكمل قراءة المقال
قناة اقرأ-تِك على التليجرام قناة اقرأ-تِك على التليجرام

مقالات ذات صلة

  • How YouTube Supports Billions of Users With MySQL 2 min read

    How YouTube Supports Billions of Users With MySQL

    Mahmoud Youssef Mahmoud Youssef • ١٩ أبريل، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How Slack Handles Billions of Tasks in Milliseconds 3 min read

    How Slack Handles Billions of Tasks in Milliseconds

    Mahmoud Youssef Mahmoud Youssef • ١١ أبريل، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • How Netflix Migrates Critical Traffic at Scale With No Downtime 4 min read

    How Netflix Migrates Critical Traffic at Scale With No Downtime

    Mahmoud Youssef Mahmoud Youssef • ٥ أبريل، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • ElasticSearch 1 min read

    ElasticSearch

    Alaa Elkzaz Alaa Elkzaz • ٣١ مارس، ٢٠٢٥
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • Redis 1 min read

    Redis

    Alaa Elkzaz Alaa Elkzaz • ٣١ مارس، ٢٠٢٥
    Alaa Elkzaz Alaa Elkzaz
    Co-Founder & Software Engineer
    • Website
  • How Canva Built Scalable and Reliable Content Usage Counting Service 2 min read

    How Canva Built Scalable and Reliable Content Usage Counting Service

    Mahmoud Youssef Mahmoud Youssef • ١٧ يناير، ٢٠٢٥
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Deep Dive Into SQL Window Functions: Explained Visually Part II - Lead and Lag 5 min read

    Deep Dive Into SQL Window Functions: Explained Visually Part II - Lead and Lag

    Ahmed Anwar Ahmed Anwar • ٨ يناير، ٢٠٢٥
    Ahmed Anwar Ahmed Anwar
    Software Technical Writer
    • Website
  • Change Data Capture at Pinterest 2 min read

    Change Data Capture at Pinterest

    Mahmoud Youssef Mahmoud Youssef • ٢١ ديسمبر، ٢٠٢٤
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website
  • Demystifying SQL Unique Constraints 2 min read

    Demystifying SQL Unique Constraints

    Nahla Hatem Nahla Hatem • ٨ ديسمبر، ٢٠٢٤
    Nahla Hatem Nahla Hatem
    Data Engineer
    • Website
  • How Stripe Architected Massive Scale Observability Solution on AWS 1 min read

    How Stripe Architected Massive Scale Observability Solution on AWS

    Mahmoud Youssef Mahmoud Youssef • ٦ ديسمبر، ٢٠٢٤
    Mahmoud Youssef Mahmoud Youssef
    CEO & Founder
    • X
    • Facebook
    • Website

اشترك الآن بنشرة اقرأ‑تِك الأسبوعية

لا تدع أي شيء يفوتك. واحصل على أحدث المقالات المميزة مباشرة إلى بريدك الإلكتروني وبشكل مجاني!

اقرأ-تك اقرأ-تك
  • الرئيسية
  • المقالات
  • خطط الاشتراك
  • - اصدارتنا
  • ورقة وقلم
  • مدونات فطين
  • شنطة مبرمج
  • النشرة الأسبوعية
  • كنوز
  • - تعرف علينا
  • من نحن
  • الشراكات
  • كتاب المحتوى
  • اكتب معنا
  • تواصل معنا
  • - بنود الخدمة
  • سياسة الخصوصية
  • الشروط والأحكام
الوسوم
  • Backend
  • Distributed Systems
  • System Design
  • Databases
  • LinkedIn
  • X
  • Facebook
  • Telegram
  • GitHub
جميع الحقوق محفوظة لمنصة اقرأ-تِك 2024©