سؤال

هل من الجيد تخزين ملفات الفيديو في قاعدة بيانات ككائنات blob أو تخزينها على قرص فعلي.

هذا لموقع مشابه لموقع YouTube حيث يمكن للمستخدمين تحميل الفيديو الخاص بهم وعرضه

ستكون قاعدة البيانات mysql

أي خيار أفضل ولماذا

شكرًا

هل كانت مفيدة؟

المحلول

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

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

في الواقع ، فإن MySQL ليس من الممكن استخدامه لحفظ الملفات. تستخدم النقط في الغالب لإنقاذ أذوت الحمل من البيانات المسلسل مثل ذاكرة التخزين المؤقت.

نصائح أخرى

أنا أستخدم NFS لتخزين محتوى الوسائط من حوالي 5 سنوات دون أي مشاكل في منظور التخزين. تتم إدارة التلاعب والترميز والتوفير عبر FFMPEG و PHP Scripts و Cron Jobs. يتم تخزين بيانات تعريف الفيديو في قاعدة بيانات MySQL ويتم توفير توصيل الويب عبر Nginx (عبر قراءة NFS فقط). حجم ملفات الفيديو يصل إلى 2 جيجابايت في هذه البيئة. ربما يمكنني أن أذهب بشكل أسرع على محرك DB آخر ، لكن النفايات في الوقت الفعلي ترجع إلى عملية الترميز وليس لتوفير الملفات.

عندما أقوم بحفظ الآلاف من الصور الصغيرة (مثل الصورة الرمزية) ، أستخدم MySQL فقط لتخزين ملفات تعريف الملفات (مسار الصورة وغيرها من الخصائص) وعدم حفظ الملف في حقل Blob الذي يمكنه إبطاء DB كثيرًا على الاستعلامات الثقيلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top