چار در مقابل وارچار
Char و Varchar معمولاً از انواع دادههای کاراکتری در سیستم پایگاه داده استفاده میشوند که شبیه به هم هستند، اگرچه در مورد نیازهای ذخیرهسازی تفاوتهایی بین آنها وجود دارد. در طراحی پایگاه داده از انواع داده های زیادی استفاده می شود. از بین آنها، انواع داده های کاراکتر جایگاه برجسته تری را به خود اختصاص می دهند زیرا برای ذخیره اطلاعات زیادی در مقایسه با اعداد استفاده می شوند. انواع داده های کاراکتری برای ذخیره کاراکترها یا داده های الفبایی در رشته ها استفاده می شود. نوع مجموعه کاراکتر پایگاه داده هنگام ایجاد پایگاه داده تعریف می شود. باز هم، از بین این نوع داده های کاراکتر، Char و Varchar معمولاً مورد استفاده قرار می گیرند.این مقاله توضیح می دهد که این دو نوع داده، char و varchar، چیست و تفاوت بین آنها چیست.
چار چیست؟
تعریف ISO از char یک کاراکتر است و نوع داده char برای ذخیره یک کاراکتر استفاده می شود. Char (n) می تواند n اندازه ثابت کاراکتر را ذخیره کند. حداکثر تعداد کاراکترهایی که یک کاراکتر (n) می تواند نگه دارد 255 کاراکتر است و طول رشته باید مقداری از 1 تا 8000 باشد. Char پنجاه درصد سریعتر از varchar است و بنابراین، هنگام کار با آن می توانیم عملکرد بهتری داشته باشیم. کاراکتر Char هنگام ذخیره داده ها از تخصیص حافظه ثابت استفاده می کند. وقتی می خواهیم رشته هایی با طول ثابت مشخص ذخیره کنیم، بهتر است از char استفاده کنیم. به عنوان مثال، هنگام ذخیره «بله» و «خیر» به عنوان «Y» و «N»، میتوانیم از نوع داده char استفاده کنیم. و همچنین هنگام ذخیره شماره کارت ملی یک فرد با ده کاراکتر، می توانیم از نوع داده به عنوان کاراکتر (10) استفاده کنیم.
وارچار چیست؟
همانطور که از نام آن پیداست، varchar یک کاراکتر متغیر نامیده می شود. Varchar برای ذخیره داده های الفبایی که دارای طول های متغیر هستند استفاده می شود. حداکثر تعداد کاراکترهایی که این نوع داده می تواند نگه دارد 4000 کاراکتر و حداکثر حجم ذخیره سازی 2 گیگابایت است. اندازه ذخیره سازی varchar طول واقعی داده به اضافه دو بایت است. Varchar کندتر از char است و هنگام ذخیره داده ها از تخصیص حافظه پویا استفاده می کند. ما میتوانیم از varchar هنگام ذخیره دادههایی مانند نام، آدرس، توضیحات و غیره استفاده کنیم. نه تنها رشتهها، بلکه انواع غیر رشتهای مانند انواع تاریخ، «12 مارس 2015»، «2015-03-12» نیز میتوانند در آن ذخیره شوند. نوع داده varchar.
تفاوت چار و وارچار چیست؟
• اگرچه char و varchar فیلدهای داده کاراکتری هستند، char یک فیلد داده با طول ثابت و varchar یک فیلد داده با اندازه متغیر است.
• Char فقط می تواند کاراکترهای رشته غیریونیکد با اندازه ثابت را ذخیره کند، اما varchar می تواند اندازه های متغیر رشته ها را ذخیره کند.
• Char برای داده هایی که مرتباً تغییر می کنند بهتر از varchar است. این به این دلیل است که ردیف دادهها با طول ثابت مستعد تکه تکه شدن نیستند.
• Char فقط فضای ثابتی را اشغال می کند که هنگام اعلان متغیر تعریف شده است. اما varchar فضا را بر اساس دادههای درج شده اشغال میکند و همچنین 1 یا 2 بایت را به عنوان پیشوند طول اشغال میکند.
• اگر داده کمتر از 255 کاراکتر باشد، 1 بایت و اگر داده بیشتر از 255 کاراکتر باشد، 2 بایت رزرو می شود. اگر از یک کاراکتر برای ذخیره پرچم «Y» و «N» استفاده کنیم، از یک بایت برای ذخیره استفاده میکنیم، اما وقتی از varchar استفاده میکنیم، ذخیره پرچم دو بایت طول میکشد که یک بایت اضافی به عنوان پیشوند طول دارد.
خلاصه:
چار در مقابل وارچار
Char و varchar پرکاربردترین نوع داده کاراکتر موجود در پایگاه داده هستند. Char برای ذخیره یک رشته با طول ثابت استفاده می شود در حالی که varchar برای ذخیره رشته هایی که طول متفاوتی دارند استفاده می شود.برای به دست آوردن عملکرد بهتر از داده ها، انتخاب انواع داده های صحیح برای فیلدهای جداول در پایگاه داده خود اهمیت بیشتری دارد. استفاده از کوچکترین انواع داده که می توانند داده ها را به درستی ذخیره کنند راحت تر است، زیرا فضای کمتری از حافظه می گیرند.