سؤال

أنا أعمل في المشروع مع جدول DB كبير نسبيًا (700k صفوف).

خطأ ، لقد ارتكبت أثناء تصميم مخطط DB. عندما تزداد الصفوف ، اضطررت إلى زيادة نوع عمود المعرف Bigint (x).

الآن هو Bigint (44). أخشى وضع قيمة عالية X لأنني اعتقدت أنه يمكن أن يبطئ الأداء بشكل كبير. ربما انا على خطأ..

الرجاء مساعدتي في حل المشكلة.

ما نوع العمود الذي يمكنني تعيينه مرة واحدة وننسى هذه المشكلة؟

ما الذي يجب أن أتعلمه بشكل أفضل في مجال تصميم مخطط DB؟

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

المحلول

عند إنشاء عمود مثل BIGINT(44) "44" هو عرض العرض - لا يؤثر على نطاق القيم التي يمكنك تخزينها أو السرعة التي يتم استردادها.

للحصول على معرف التلقائي الذي تريد استخدامه UNSIGNED رقم ، على سبيل المثال BIGINT(44) UNSIGNED. سيؤدي ذلك إلى ضعف نطاق القيم ويضيف قيدًا إضافيًا ، وهو أمر جيد عادة.

ستخزن INT غير موقعة ما يصل إلى 4،294،967،295 ، وسيقوم Bigint غير الموقّع بتخزين ما يصل إلى 18،446،744،073،709،551،615 - لن تملأ ذلك في أي وقت قريب.

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

نصائح أخرى

أعتقد أن أي مفتاح أساسي لن يتم تعيينه افتراضيًا. في أي حال ، فإن استخدام الأرقام السلبية للمفاتيح الأولية أمر مستهجن في أحسن الأحوال ، ويكسر الأشياء.

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