سؤال

أنا أعمل على تطبيق الذي يسمح للمستخدمين بشكل حيوي إضافة الأسئلة إلى نماذج ويب.نحن نستخدم الخلية مثل الخلفية, و أنا أحاول أن تجد أسرع وأكثر كفاءة تخزين بيانات النموذج.

في تخزين البيانات في جدول منفصل لكل قسم شكل.وكانت الأعمدة اسمه حسب النظام الذي سمح لنا خريطة ديناميكية السؤال إلى موقع التخزين.السلبيات التي التخزين نظام رسم الخرائط كانت مصممة بشكل سيئ ، الأمر الذي جعل تعديل الأشكال مع البيانات الموجودة كابوس.أيضا, MySQL القيود على الذاكرة في الصف يقتصر على عدد من الأسئلة التي يمكن أن يكون في القسم.

وبالتالي أنا أبحث في استخدام جدول واحد يحتوي على جميع بيانات النموذج.لأن الأسئلة المقالية مسموح, أنا تفكر في استخدام النص أو MediumText كما الحقل نوع البيانات الفعلية.ولكن أنا أشعر بالقلق إزاء استخدام ذاكرة الوصول العشوائي عند تشغيل الاستعلامات.عند تشغيل استعلام عن البيانات, الخلية سوف تكون ذكية بما فيه الكفاية أن يخصص الذاكرة اللازمة للحصول على البيانات في حقل (حتى لو كان صغير صحيح) أو أنه سيتم تخصيص كامل المبلغ المسموح به MediumText المجال ؟

وعلاوة على ذلك, هل هناك طريقة أفضل يمكن أن تفكر فيما يتعلق بتخزين البيانات على قاعدة بيانات ديناميكية مثل هذا ؟

ايمي

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

المحلول

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

http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-compression-tuning-when-data.html http://dev.mysql.com/doc/innodb-plugin/1.0/en/innodb-compression-usage.html

جدول بسيط تعريف إجاباتك قد يكون شيئا مثل:

CREATE TABLE test_answers (
answer_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
test_id INT UNSIGNED,
question_id INT UNSIGNED,
answer_body TEXT,
PRIMARY KEY(answer_id, question_id)
) ENGINE=InnoDB
 ROW_FORMAT=COMPRESSED 
 KEY_BLOCK_SIZE=4;

نصائح أخرى

قد تفلت متوسطة الحجم حقول النص ولكن عموما أجمل تخزين كبيرة الحقول في جدول منفصل.

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