PDA

View Full Version : سوال: نوع فیلد دیتابیس برای زمانی که اطلاعات محدود هستن چی باید باشه؟



i-php-i
پنج شنبه 27 آذر 1393, 18:40 عصر
فرض کنید توی یه فیلد می خوایم این اطلاعات رو ذخیره کنیم
0
1
2
3
4
5

بغیر از این اعداد هیچ اطلاعاتی توی فیلد قرار نمی گیره، در حالت عادی نوع فیلد tinyint برای این کار مناسب به نظر می یاد اما آیا نوع دیگری هم هست که با انتخاب اون بتونیم سرعت سایت رو بالاتر ببریم؟

H:Shojaei
پنج شنبه 27 آذر 1393, 18:53 عصر
int(1) بذارید

i-php-i
چهارشنبه 03 دی 1393, 19:17 عصر
نوع int برای نگه داری اعداد بزرگ بکار می ره و اعداد کوچیک همین tinyint بهتره ولی اگر نوع داده ها عددی نبودن و تعدادشون هم مشخص بود باید چیکار کنیم؟ یعنی نمی خوام از int و text استفاده کنم

MMSHFE
چهارشنبه 03 دی 1393, 19:23 عصر
نوع enum رو انتخاب کنید.

i-php-i
چهارشنبه 03 دی 1393, 19:42 عصر
فرض کنید توی وب سایت فقط مقالات تایید شده باید نمایش داده بشن

در این صورت باید یه فیلد داشته باشیم که وضعیت مقاله (فعال/غیر فعال) رو ذخیره کنه

برای وضعیت مقالات از کدوم نوع استفاده بشه بهتره و کدوم یکی سرعت بیشتری داره؟
tinyint
tinytext
enum
set

MMSHFE
چهارشنبه 03 دی 1393, 19:57 عصر
tinyint(1)

hamedarian2009
چهارشنبه 03 دی 1393, 21:19 عصر
برای فیلدهایی که دو تا وضعیت فعال یا غیرفعال و یا همون 0 یا 1 دارن نوع boolean رو انتخاب کنید که همون tinyint(1) هست

i-php-i
پنج شنبه 04 دی 1393, 01:10 صبح
ممکنه حالت مقالات چندتا باشه و فقط به 0 و 1 محدود نباشن

در این صورت از چه نوعی باید استفاده کنم؟

کلا سرعت وب سایت برام مهمه و اگر enum و set باعث کند شدن سایت می شن بهتره از tinyint و tinytext استفاده کنم

H:Shojaei
پنج شنبه 04 دی 1393, 10:35 صبح
همون tinyint(1) بهترین گزینس...

i-php-i
جمعه 05 دی 1393, 00:45 صبح
فرض کنید یه فیلد tinyint(1) داریم که حالت فعال و غیر فعال مقالات رو ذخیره می کنه. اگر 50000 مقاله داشته باشیم که فقط 500 تا از این مقالات غیر فعال باشن بنظرتون گذاشتن ایندکس روی این فیلد موثر هست؟ چون 49500 مقاله باقی می مونه و اگر mysql ایندکس رو در نظر نگیره و کل جدول رو سرچ کنه چندان تفاوتی با حالتی که ایندکس رو در نظر بگیره نداره

MMSHFE
جمعه 05 دی 1393, 10:39 صبح
دقت کنید که ایندکس کردن روی فیلدهایی که مقدار تکراری زیاد دارن، تأثیر زیادی توی سرعت نداره و درمقابل جدول ایندکس شما خیلی شلوغ و ناکارآمد میشه و ازطرف دیگه، بطور کلی ایندکس گذاری باعث کاهش سرعت نوشتن در دیتابیس میشه.

MMSHFE
جمعه 05 دی 1393, 10:40 صبح
ممکنه حالت مقالات چندتا باشه و فقط به 0 و 1 محدود نباشن

در این صورت از چه نوعی باید استفاده کنم؟

کلا سرعت وب سایت برام مهمه و اگر enum و set باعث کند شدن سایت می شن بهتره از tinyint و tinytext استفاده کنم

tinyint(1) از 128- تا 127 رو قبول میکنه و اگه unsigned هم بگذارین، از 0 تا 255 رو قبول میکنه.

Mohammadsgh
جمعه 05 دی 1393, 12:14 عصر
enum هم خوبه