بيانات المنتج التحليلية في ملفات TXT (باستخدام YAML)

StackOverflow https://stackoverflow.com/questions/4888205

سؤال

أقوم حاليًا بتطوير برنامج للتجارة الإلكترونية باستخدام PHP / MySQL لشركة كبيرة. هناك خياران لي للحصول على بعض البيانات المحددة:

  • قاعدة بيانات (للحصول على بيانات ضخمة ، مثل المنتجات ، والفئات ، والأوامر ، وما إلى ذلك)
  • TXT (باستخدام YAML- للحصول على البيانات التحليلية وبعض الخيارات)

على سبيل المثال ، عندما ينتقل المستخدم إلى صفحة تفاصيل المنتج ، أحتاج إلى الحصول على ملفات TXT هذه:

  • ملف ملخص المنتج (product_hit ، و quantity_sold ، وما إلى ذلك) - بحد أقصى 90 كيلو بايت
  • ملف الإعدادات واللغات (مثل اسم الشركة وترجمات النموذج) - بحد أقصى تقريبًا. 300 كيلو بايت
  • قد يكون ملفًا آخر (لا أعرف جيدًا أعلم) - يفترض أنه 100 كيلوبايت.

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

يبدو ملف txt الخاص بي بالشكل (YAML):

Genacodicetagpre

لكن ما زلت غير متأكد من السرعة والأداء. استخدام ملفات TXT فكرة جيدة؟ هل يجب أن أستخدم هذه الطريقة حقًا بدلاً من DB؟

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

المحلول

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

يرجى إلقاء نظرة على قواعد البيانات المستندة إلى المستندات بالرغم من ذلك ، ليس بالضرورة لديك لاستخدام قاعدة بيانات ارتباطية.في الواقع ، عند النظر إلى مثال ملف YAML ، أعتقد أن استخدام " no SQL "ستكون قاعدة البيانات بديلاً أفضل.

في صحتك

نصائح أخرى

أنا أحب YAML وأعتقد أنه رائع للكميات الأصغر من البيانات ، ولكن من الأفضل التعامل مع الأبعاد التي ذكرتها باستخدام قاعدة بيانات.إنه أسرع ويمكن فهرسة البيانات - في سيناريو مستند إلى ملف ، سيتعين عليك استعراض الملف بأكمله للعثور على شيء ما.

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

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

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

YAML هو "تنسيق تسلسل البيانات المقروء على الإنسان".

التسلسل هو عملية تحويل الهياكل الموجودة في الذاكرة إلى تنسيق يمكن كتابته ، وربما نقله وقراءته في الهياكل الموجودة في الذاكرة.

أنظمة إدارة قواعد البيانات هي برامج تساعد في التحكم في إدارة البيانات من الإنشاء وحتى المعالجة ، بما في ذلك

  • الأمان
  • قابلية التوسع
  • التزامن
  • سلامة البيانات (الذرية والاتساق والعزل والمتانة)
  • الأداء
  • التوفر

لا يوفر YAML أدوات وبيئة متكاملة تهتم بما ورد أعلاه ، وإذا كنت تريد استخدامه كمخزن بيانات رئيسي ، فأنت بحاجة إما إلى عزل كل التحديات المذكورة أعلاه بعيدًا عن هذا السيناريو المحدد الذي قد يستخدم YAML كنظام أساسي لإدارة البيانات (أو إعادة اختراع العجلات إلى حد معين ، عاجلاً أو آجلاً).

أتصور أنه لا يوجد "نظام للتجارة الإلكترونية لشركة كبيرة" قد يضحي بأي من الميزات المذكورة أعلاه من أجل سهولة القراءة البشرية.

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