ما هو الحجم المناسب للمفتاح الأساسي الذي تم إنشاؤه بالتسلسل؟

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

سؤال

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

كيف تتعامل مع إدارة حجم المفتاح الأساسي؟هل من الأفضل أن ألتزم بأعداد Java الصحيحة، من أجل الاستفادة من الأداء على المدى الطويل الأكبر، وزيادة الحجم عند الحاجة، أم يجب أن أتعامل مع الأمر، وأستخدم Java Long لمعظم ملفات PK الخاصة بي، ولا داعي للقلق أبدًا بشأن تجاوز سعة البيانات؟ حجم التسلسل؟

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

المحلول

ولقد ذهبت دائما مع مفاتيح طويلة (الرقم (18،0) في قاعدة البيانات) لأنها ببساطة إزالة إمكانية يحدث هذا الوضع الى حد كبير في جميع الحالات (بيانات المدقع تطبيقات أسلوب اكتناز جانبا). وجود نفس نوع البيانات في جميع الجداول للحصول على مفتاح يعني أنه يمكنك مشاركة هذا المجال في جميع الأجسام النموذج الخاص بك في الفئة الأصل، فضلا عن وجود كود ثابت حاصل SQL الخاص بك، وهلم جرا.

نصائح أخرى

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

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

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

ضع في اعتبارك أن عددًا صحيحًا 32 بت غير موقّع يخزن أكثر من 4 مليارات قيمة.إذا كنت تعتقد أنك ستحصل على متوسط ​​أكثر من صف واحد جديد كل ثانية في هذا الجدول على مدار الـ 136 عامًا القادمة، فأنت بحاجة إلى استخدام خط طويل.

وقعت 32 الأعداد الصحيحة قليلا في جافا الأعداد الصحيحة، لذلك مليار فقط 2. إذا لسبب ما، التسلسل الخاص بك وتبقي القفز بين الحين والآخر، ثم سيكون هناك بعض الفجوات بين PKS الخاص بك.

وأنه لا يضر أن يكون لها فترة طويلة (تذكر أن المشكلة Y2K حدث لأن بعض مطوري كوبول يعتقد أنهم سيوفر بعض بايت في مواعيد ؟؟): -)

لذلك، وأنا دائما استخدام طويل.

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