نمایش نتایج 1 تا 5 از 5

نام تاپیک: کدام مورد جهت ذخیره سازی اطلاعات در دیتابیس بهتر و بهینه تر هست؟

  1. #1

    کدام مورد جهت ذخیره سازی اطلاعات در دیتابیس بهتر و بهینه تر هست؟

    با عرض سلام و خسته نباشید خدمت همه دوستان عزیز

    من برای سایتم تعداد خیلی زیادی جداول در دیتابیس دارم، که اکثر این جداول (شامل جدول کاربران، سفارشات، پیام‌ها، تیکت و ...) همشون چندین ستون دارند که وضعیت را ثبت میکنند جهت استفاده های بعدی؛ مقادیری که در این ستونها ذخیره میشه تنها یک کاراکتر هست یا بصورت عدد یا بصورت حروف، اما تنها یک کاراکتر دارد. بطور مثال به این شکل:
    حالت اول بصورت عددی با نوع tinyInt با میزان 1 => ستون وضعیت: مقدار 0 = غیرفعال / مقدار 1 = فعال / مقدار 2 = در انتظار بررسی / مقدار 3 = در حال بررسی
    حالت دوم بصورت مقداری با نوع varchar با میزان 1 => ستون وضعیت: مقدار n = غیرفعال / مقدار a = فعال / مقدار p = در انتظار بررسی / مقدار c = در حال بررسی
    چون سیستم این موارد را دریافت و پردازش میکند و قرار نیست اطلاعات به کاربر نمایش داده شود، به همین دلیل فرقی نداره از نظر کاربردی که بصورت عددی باشد یا حروفی؛

    سوال من این هست که کدام مورد برای ذخیره این قبیل اطلاعات بهتر و بهینه تر هست ؟
    مقدار را بصورت عددی در دیتابیس ذخیره کنیم یا بصورت حروفی در فیلد varchar
    کدام مورد در حجم بالا (حدوداً دو تا 10 میلیون رکورد در هر جدول) حجم دیتابیس را کمتر افزایش میدهد و استاندارد تر هست ؟

  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: کدام مورد جهت ذخیره سازی اطلاعات در دیتابیس بهتر و بهینه تر هست؟

    int یا بهتر بگم tinyint فضای کمتری میگیره و بهینه تر هستش از نظر سرعت
    ولی varchar خوانایی بالاتری داره و سریعتر میشه درکش کرد و نیاز نیست به یاد بسپاری چیزی رو

    شخصا از enum استفاده میکنم برای فیلد های فلگ که بیش از 2 حالت دارن و bool برای فیلد هایی که 2 حالت دارن

  3. #3

    نقل قول: کدام مورد جهت ذخیره سازی اطلاعات در دیتابیس بهتر و بهینه تر هست؟

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    int یا بهتر بگم tinyint فضای کمتری میگیره و بهینه تر هستش از نظر سرعت
    ولی varchar خوانایی بالاتری داره و سریعتر میشه درکش کرد و نیاز نیست به یاد بسپاری چیزی رو
    شخصا از enum استفاده میکنم برای فیلد های فلگ که بیش از 2 حالت دارن و bool برای فیلد هایی که 2 حالت دارن
    واقعاً از شما متشکرم دوست عزیز؛ boolean مناسب نیست چون در هر صورت بیش از دو حالت دارم؛ و با توجه به توضیحات شما و اینکه نیازی به حفظ کردن و به یاد سپاری این موارد نیست و تنها یک مرتبه تعریف میشوند و پس از اون خود سورس پردازش را انجام میدهد و در آینده هم نیازی به ارتقاء یا آپدیت ندارد، بنابراین همون tinyint بسیار مناسب هست؛ ممنونم از شما

  4. #4

    نقل قول: کدام مورد جهت ذخیره سازی اطلاعات در دیتابیس بهتر و بهینه تر هست؟

    همون نوع فیلد tinyint بهتر است یه بایت هم بیشتر نمیگیره و سرعت خیلی خوبی هم داره . از 0 تا 255 هم میگیره پس مشکلی نداری اگه همین کارت رو راه میندازه.

  5. #5
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: کدام مورد جهت ذخیره سازی اطلاعات در دیتابیس بهتر و بهینه تر هست؟

    البته bool عملا همون tinyint هستش و فرقی چندانی از نظر ساختار ندارن چون Mysql مفهوم false , true نداره
    مزیتش نام bool هست که برای آدم های وسواسی مثل من مناسبه که فلگ های 2 حالته رو نشون بده

تاپیک های مشابه

  1. پاسخ: 0
    آخرین پست: دوشنبه 22 بهمن 1397, 14:18 عصر
  2. سوال: ذخیره کردن رشته ای در دیتابیس که دارای بد کاراکتر هست؟
    نوشته شده توسط kienshien در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 23 فروردین 1390, 22:05 عصر
  3. سوال: اشکال این کد کجاست؟(ذخیره عکس در دیتا بیس)
    نوشته شده توسط gabrieleb در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 03 آبان 1389, 22:07 عصر
  4. چرا دیتابیس هام خالی است؟
    نوشته شده توسط Asad.Safari در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: یک شنبه 14 تیر 1383, 18:33 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •