سؤال

يتم تكوين طلبي عبر الكثير من المفاتيح/القيم (دعنا نقول 30.000 على سبيل المثال)

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

لقد فكرت في

  • تجميعهم مسبقًا في صفيف عبر ملف PHP
  • تم تجميعهم مسبقًا في قاعدة بيانات TMPFS SQLite
  • مسبقًا تجميعهم في دي بي مُأمب

ما هي خياراتي

  • أفضل وقت وصول عشوائي لهذه التكوين (الذاكرة ليست مشكلة)؟
  • أفضل وقت وصول منظم إذا كان بإمكاني تقسيم هذه التكوين إلى عائلات مثل (الشبكة ، I18N ، ..)

شكرا جيروم

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

المحلول

حسنًا ، إذا لم تكن الذاكرة مشكلة ، فما عليك سوى تسلسل صفيف إلى ملف. لا يوجد حل أسرع على الإطلاق. ليس لديك إدراك I/O ومكتبة SQLite ، وليس لديك الشبكة العامة من memcached.

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

لتنظيم الإعدادات ، يمكنك وضع كل في ملفه الخاص.

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

نصائح أخرى

ماذا عن قاعدة البيانات؟

مع مخطط مثل هذا:

| key | value |

يمكن أن يكون لديك بيانات مثل هذا:

| currency | pound |
| timezone | GMT   |

هذا يعني أيضًا أنه يمكنك الاستعلام عنه مثل هذا:

SELECT * FROM options WHERE key = 'timezone'

أو حتى إرجاع العديد من الخيارات:

SELECT * FROM options WHERE key IN ('timezone','currency')

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

إذا كنت تريد منظمًا ، فسأقول ملفات INI باستخدام parse_ini_file وظيفة.

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