سؤال

هل هو أكثر كفاءة لاستخدام varchar حجم الحقل كقوة لاثنين مقابل رقم آخر؟ أنا أفكر لا، لأنه ل SQL Server الافتراضي هو 50.

ومع ذلك، فقد سمعت (ولكن لم يتم تأكيدها أبدا) أن تحجيم الحقول كطاقة 2 أكثر كفاءة لأنها تعادل حتى بايت، وعملية أجهزة الكمبيوتر في البتات والبايت.

لذلك، هل أعلن الحقل varchar(32) أو varchar(64) لديك أي فائدة حقيقية أكثر varchar(50)?

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

المحلول

رقم.

في بعض الاستخدامات الأخرى، هناك بعض المزايا لاستخدام الهياكل ذات طاقة من حجمها، معظمها لأنك تستطيع أن تناسب عددا لطيفا (قوة اثنين) من هذه الموجة داخل هيكل كهربائي آخر ذو حجم ثنائي الحجم. ولكن هذا لا ينطبق على حقول DB.

تعتبر Suilizing Sizing Sized فقط ذات الصلة بالملفرار حول النوع الدقيق من Varchar (أو النص / Blob) في بعض لهجات SQL): إذا كان أقل من 256، فيمكنه استخدام بايت واحد للإشارة إلى الطول. إذا كان أقل من 65536 (64 كيلو بايت) (64 كيلو بايت)، فإن بايتين يكفيان، يعمل ثلاثة بايت يصل إلى 16777216 (16 ميغابايت)، وذهب أربعة بايت إلى 4294967296 (4 جيجابايت).

أيضا، يمكن القول ذلك VARCHAR(50) هو باهظ الثمن VARCHAR(255), ، بما أن كلاهما سيحتاج إلى N + 1 بايت من التخزين.

بالطبع هذا قبل التفكير في يونيكود ...

نصائح أخرى

اعتقدت دائما أن الناس يختارون صلاحيات اثنين من حقول فارغة لأننا مهوسون وهذا ما نقوم به. على الأقل هذا ما فعلته دائما.

الفائدة الملموسة الوحيدة التي سترى من استخدام أقصى أطوال معينة هي مساحة التخزين المطلوبة لل VARCHAR. وبعد سيتطلب الحد الأقصى الطول أكثر من 255 بايت إضافية لتخزين طول القيمة في كل صف (و 2 بايت إضافية لأطوال 256 ^ 2 أو أكبر وما إلى ذلك).

ل SQL بشكل عام؟ رقم لتنفيذ معين، ربما.

ما هو أكثر كفاءة لا يتم تحديدها بواسطة مواصفات (SQL هي مجرد مواصفات)، ولكن كيف يتم تنفيذها في DBMS معينة.

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

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