jsonscraper
الأسواق
العودة إلى المجلة

Cloudflare D1 تقيّد حجم استجابة الاستعلام: لماذا يختلف تصدير قاعدة البيانات؟

منذ 4 نوفمبر، قد يفشل استعلام D1 إذا تجاوزت نتيجته 50 ميغابايت. ينطبق الحد على استجابة الاستعلام؛ أما الاستيراد والتصدير عبر REST API فيستمران كالمعتاد.

السياسة التحريرية الإبلاغ عن خطأ

منذ 4 نوفمبر 2026، يفشل استعلام Cloudflare D1 إذا تجاوز حجم نتيجته 50 ميغابايت. ومن المهم للمطورين فهم نطاق هذا التغيير: فالحد يتعلق بحجم نتيجة استعلام منفرد، لا بالحد الأقصى لحجم قاعدة البيانات. ولا يشمل هذا الحد استيراد البيانات وتصديرها عبر REST API، لذا فإن طريقة قراءة البيانات هي ما يحدد الحاجة إلى تغيير سير العمل.

مقال: تقيّد Cloudflare D1 حجم استجابة الاستعلام: لماذا يختلف تصدير قاعدة البيانات؟
الملخص: ينطبق حد D1 البالغ 50 ميغابايت على حجم نتيجة استعلام واحد، لا على حجم قاعدة البيانات. نستعرض العمليات المتأثرة وسبل تقسيم عمليات القراءة والتصدير الكبيرة.
دور الصورة: الغلاف — الفكرة المحورية
القسم: تقيّد Cloudflare D1 حجم استجابة الاستعلام: لماذا يختلف تصدير قاعدة البيانات؟
الموضوع البصري: صورة تحريرية لجدول قاعدة بيانات ممثل على هيئة رزمة من بطاقات بيانات شفافة
ينطبق الحد على حجم نتيجة استعلام SQL منفرد، لا على الحجم الإجمالي لقاعدة البيانات.© jsonscraper · مُنشأ بالذكاء الاصطناعي

ما الذي يخضع للحد تحديداً؟

وصفت Cloudflare هذا التغيير في تدوينة بتاريخ 30 أكتوبر: إذ يعيد أي استعلام تتجاوز نتيجته 50 ميغابايت الخطأ D1 query result exceeded the maximum response size limit of 50 MB. ويبدأ تطبيق الحد في 4 نوفمبر 2026. وتذكر وثائق D1 أيضاً أن الحد يتعلق بحجم نتيجة الاستعلام؛ بينما يمكن أن تصل سعة قاعدة البيانات إلى 10 غيغابايت في الخطة المدفوعة أو 500 ميغابايت في الخطة المجانية.

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

في إعلان Cloudflare عن الحد، تشير الشركة إلى أن العتبة تغطي المئين 99.999 من استعلامات D1. وهذا تقدير لتوزيع الاستعلامات أورده مزود الخدمة؛ أما التحقق على مستوى التطبيق، فالأهم فيه قياس الاستجابات الفعلية للتطبيق وتحديد الاستعلامات التي تعيد كميات كبيرة من البيانات.

لماذا يُعد التصدير عبر REST API حالة منفصلة؟

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

مقال: تقيّد Cloudflare D1 حجم استجابة الاستعلام: لماذا يختلف تصدير قاعدة البيانات؟
الملخص: ينطبق حد D1 البالغ 50 ميغابايت على حجم نتيجة استعلام واحد، لا على حجم قاعدة البيانات. نستعرض العمليات المتأثرة وسبل تقسيم عمليات القراءة والتصدير الكبيرة.
دور الصورة: رسم توضيحي داعم 2 — جانب محدد مختلف
القسم: لماذا يُعد التصدير عبر REST API حالة منفصلة؟
الموضوع البصري: رسم معلوماتي تقني باللغة الروسية يعرض مسارين موثّقين: استعلام SQL يعيد صفوفاً
تقسّم القراءة على صفحات استجابات استعلام SQL، بينما يظل الاستيراد والتصدير عبر REST API عمليتين منفصلتين.© jsonscraper · رسم توضيحي مُنشأ بالذكاء الاصطناعي

عملياً، يساعد هذا التمييز على اختيار المسار المناسب. فإذا كان التطبيق يحتاج إلى جميع السجلات لعرضها أو معالجتها أو إعداد تقرير، فقسّم القراءة إلى دفعات. أما إذا كان الهدف نقل البيانات أو تصديرها، فتحقق من استخدام مسار التصدير عبر REST API بدلاً من محاولة الحصول على قاعدة البيانات كلها في استجابة SQL واحدة.

كيف تقلّص الاستجابة من دون فقدان البيانات المطلوبة؟

الخطوة الأولى هي استبعاد الأعمدة غير الضرورية. فبدلاً من SELECT *، حدّد الحقول التي تحتاج إليها العملية الحالية فقط. وهذا يقلص حجم الاستجابة، ولا سيما إذا كان الجدول يتضمن أوصافاً طويلة أو بيانات JSON أو قيم BLOB.

الخطوة الثانية هي قراءة الصفوف على دفعات باستخدام LIMIT وOFFSET، كما توصي Cloudflare. فمثلاً، يمكن للواجهة جلب الصفحة التالية أثناء التمرير، ويمكن للمهمة المجمّعة معالجة الدفعات كلّاً على حدة. وأضف ترتيباً ثابتاً، كاستخدام معرّف فريد؛ فمن دونه قد تتغير حدود الصفحات إذا تبدلت البيانات بين الاستعلامات.

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

ما الذي ينبغي التحقق منه في التطبيق؟

ابدأ بالاستعلامات التي تعيد قوائم كبيرة: عمليات التصدير الخاصة بالتقارير، والشاشات الإدارية، والمهام الخلفية، ومسارات API التي ترسل مصفوفات من الصفوف. سجّل مؤقتاً حجم الاستجابة بعد تسلسلها، أو عدد الحقول المختارة وأحجامها. ثم تحقق من أكبر حجم متوقع، لا من مجموعة الاختبار الصغيرة المعتادة فحسب.

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

والخلاصة للفريق بسيطة: من المرجح ألا تحتاج الاستعلامات القصيرة المعتادة إلى تغيير، أما عمليات القراءة الكبيرة فينبغي تحويلها إلى معالجة على دفعات. ولا يمنع وجود الحد تخزين قاعدة بيانات أكبر حجماً، ولا يلغي التصدير عبر REST API؛ بل يقتضي تصميم الاستعلامات بحيث تظل كل استجابة دون 50 ميغابايت.

الناس

لم يتم إدراج أي أشخاص لهذه المقالة حتى الآن.

استمر في القراءةستفرض Cloudflare D1 حدًا أقصى لنتائج الاستعلام: ما الذي ينبغي التحقق منه قبل 4 نوفمبر؟
إقرأ المقال التالي

حوّل ما تقرأه إلى تكامل عملي

استكشف واجهات API للبيانات الاجتماعية من jsonscraper واختبر الطلبات وأنشئ سير عملك التالي.

استكشف واجهات API