راهنمایی برای طراحی mysql

sedamorde

New Member
سلام دوستان
من چند تا سؤال در مورد طراحی دیتابیس پروژه ای که انجام میدیم دارم، اگر شما بتونید کمکم کنید خیلی ممنون میشم.

میخوام برای 30000 کاربر یک بانک بسازم که اطلاعات بسیار بسیار زیادی را قرار نگهداری کنه برای همین خیلی مهم که بهترین راه ها را انتخاب کنم.

حدود 50 عدد صحیح را میخوام در یک table نگهداری کنم برای این کار 2 روش به ذهن خود رسید:
1- 50 فیلد در نظر بگیرم
2- 10 تا فیلد در نظر بگیرم و اعداد را به این صورت نگهداری کنم : 100-200-300-400-500 بعد داخل برنامه - را جدا کنم (explode) و مقدارها را در array قرار بدم.

البته من این دو روش را تست کردم و 11.000 رکورد مشابه وارد دو جدول که به ترتیب روش 1 و 2 ساخته شده بود کردم، حجم جدول 1 برابر بود با 1.5 MB و جدول 2 برابر 2.1 MB شد! به نظر شما بهترین روش چیه!؟

سوال بعدی من اینکه اگر از روش 1 استفاده کنم بهتر تمام فیلدها در یک table باشه یا در چند table؟ البته برنامه هر بار به تمام این فیلدها نیاز داره! در کتابی خوندم (خیلی معتبر نبود) که table بیشتر بهتر از فیلد بیشتره!
اگر کسی هم میدونه که MySQL حداکثر چه مقدار داده ای را میتونه نگهداری کنه و در ثانیه میتونه به چند نفر پاسخگو باشه ممنون میشم بگه.

مرسی :)
 

k2-4u

Well-Known Member
سلام دوستان
من چند تا سؤال در مورد طراحی دیتابیس پروژه ای که انجام میدیم دارم، اگر شما بتونید کمکم کنید خیلی ممنون میشم.

میخوام برای 30000 کاربر یک بانک بسازم که اطلاعات بسیار بسیار زیادی را قرار نگهداری کنه برای همین خیلی مهم که بهترین راه ها را انتخاب کنم.

حدود 50 عدد صحیح را میخوام در یک table نگهداری کنم برای این کار 2 روش به ذهن خود رسید:
1- 50 فیلد در نظر بگیرم
2- 10 تا فیلد در نظر بگیرم و اعداد را به این صورت نگهداری کنم : 100-200-300-400-500 بعد داخل برنامه - را جدا کنم (explode) و مقدارها را در array قرار بدم.

البته من این دو روش را تست کردم و 11.000 رکورد مشابه وارد دو جدول که به ترتیب روش 1 و 2 ساخته شده بود کردم، حجم جدول 1 برابر بود با 1.5 MB و جدول 2 برابر 2.1 MB شد! به نظر شما بهترین روش چیه!؟

سوال بعدی من اینکه اگر از روش 1 استفاده کنم بهتر تمام فیلدها در یک table باشه یا در چند table؟ البته برنامه هر بار به تمام این فیلدها نیاز داره! در کتابی خوندم (خیلی معتبر نبود) که table بیشتر بهتر از فیلد بیشتره!
اگر کسی هم میدونه که MySQL حداکثر چه مقدار داده ای را میتونه نگهداری کنه و در ثانیه میتونه به چند نفر پاسخگو باشه ممنون میشم بگه.

مرسی :)

سلام دوست عزیز .
اول از همه توصیه میکنم که از نوع دیتابیس InnoDB استفاده کنید
.
به نظر من از روش اول استفاده کنید . و البته باید به این نکته دقت کنید
که . طول داده ها و نوع داده ها رو چی در نظر میگیرین
مثلا اگر اعداد شما . بیشتر از 3 رقم نیست . باید از SMALLINT(3) UNSIGNED استفاده کنید
برای 30000 رکورد
مشکلی ایجاد نمیشه


یک نکته مهم هم است : mysql برای هر جدول یک فایل میسازه
از نظر ساختاری . یک جدول بهتره .
 
آخرین ویرایش:

sedamorde

New Member
مرسی دوست عزیز
به تنها چیزی که فکر نکرده بودم نوع دیتابیس بود!
اعداد من شاید 6 رقم هم بشه و من (3)mediumint را در نظر گرفتم.
البته دیتابیس من جدول های دیگری هم داره که خوب با آنها مشکلی ندارم.

در مورد این نکته ای هم که یاد آوری کردید ممنون. من در پروژه های زیادی دیدم که از 60-70 جدول استفاده شده اما تا حالا ندیدم که از 50 فیلد استفاده بشه! به نظر شما بهتر نیست به جای اینکه یک فایل را سنگین کنیم حجم آن را تقسیم کنیم؟ (البته این نظر من و اطلاعی ندارم)

بازهم ممنون :)
 

جدیدترین ارسال ها

بالا