هل ترتيب الصفوف في طاولة MySQL ثابتة، بحيث تعيدهم الاستعلامات دائما بهذا الترتيب؟

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

سؤال

لدي تطبيق يجمع البيانات في جدول MySQL. ليس لدى الجدول عمود معرف فريد، لذلك لا يمكنني الرجوع إلى صف معين حسب المعرف.

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

لذلك اعتقدت أنني أخزن عدد الصفوف في الجدول في كل تفريغ واستخدام هذا الرقم كإزاحة في المرة القادمة يتم إلقاء الجدول (حدد * من حد الجدول Verylargenumbgeumbrumber Offset X). بالطبع، يعمل فقط إذا كان هناك ضمان يتم إدخال صفوف جديدة دائما في نهاية الجدول، لذلك ستكون جميع الصفوف الجديدة بعد الإزاحة.

أفترض أنني أستطيع الاعتماد على ذلك. هل انا على حق؟

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

المحلول

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

نصائح أخرى

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

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

لذلك قل لديك 3 صفوف: أ، ب، ج

إذا قمت بحذف B، فسيظهر الجدول الخاص بك بشكل أساسي مثل، [مساحة حرة]، ج

لذلك إذا قمت بإدراج D في الجدول الخاص بك، فستظهر الآن: A، D، C

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

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