برگزیده های پرشین تولز

ایجاد ایندکس بر روی دیتابیس

h_p609

Registered User
تاریخ عضویت
25 می 2011
نوشته‌ها
173
لایک‌ها
40
محل سکونت
ایران
با سلام
من دارم یه نرم افزار می نویسیم که دیتابیسش احتمالا حجیم خواهد شد.
حالا سوال من اینه که آیا وقتی دیتابیس ساخته و حجیم شد میتونم راحت روی اون تغییرات اعمال کنم؟ مثلا نوع یک فیلد را عوض کنم؟

سوال بعد که خیلی برام مهمه اینه که برای بالا بردن کارایی سایت آیا همین الان که دارم دیتابیس را طراحی میکنم باید کارهای لازم مثله index گذاری و غیره را انجام دهم یا اینکه بعدا هم امکانش هست؟ در خصوص Full text index چطور؟

ممنون از راهنماییتون
 

web-developer

Registered User
تاریخ عضویت
29 دسامبر 2015
نوشته‌ها
572
لایک‌ها
725
زمانش فرقی نداره
منظورتون از خیلی حجیم چقدره و ساختار دیتابیستون رو اینجا بزارین
طراحی دیتابیس خیلی می تونه متفاوت باشه و بهینه تر بشه
تغییر دادن نوع داده هم در نظر بگیرین در بعضی تغییرات اگر درست عمل نکنین اطلاعات قبلی صدمه می بینه قبلش بک اپ بگیرین
مثلا بخای رشته رو عددی کنه صفر میشه
یا طولش کم کنی - طول اضافی حذف میشه
 

h_p609

Registered User
تاریخ عضویت
25 می 2011
نوشته‌ها
173
لایک‌ها
40
محل سکونت
ایران
مثلا من یک دیتابیس دارم که یک جدولش در حدود 1 میلیون رکورد دارد. یکی از فیلدهاش را NVarchar(Max) گذاشته بودم که بعدا فهمیدم بهتره Nvarchar 500 بگذارمش. اما موقع ذخیره تغییرات sql اخطار میداد و وقتی تایید میگردم زمان زیادی طول میکشید و سرور نیز down میشد. آخرش هم پیغام میداد که نمیشه!

پس من الان که فرصت یادگیری دقیقتر ندارم نرم افزارم را طراحی می کنم و بعد سر فرصت روی performanc اون وقت میگذارم. درسته؟
 

web-developer

Registered User
تاریخ عضویت
29 دسامبر 2015
نوشته‌ها
572
لایک‌ها
725
یک میلیون رکورد از لحاظ تعداد رکورد زیاد نیست
در مورد down شدن خب ببنید مثلا زمان اجرای یک کدی 100 ثانیه اس حداکثر وقتی بیشتر بشه داون می کنه ولی به این معنا نیست که نتونسته یا چیزی
نهایتش دیدی مسئله در این حد بغرنج شده و راهی نیست چند خط php می نویسی از دیتابیس قبلی بخونه و در جدید بنویسه
ولی لطفا اول یک ساختار کلی از دیتابیس بزارین اینجا
اولش که درست طراحی کنین بعدا راحتترین و اگر نرمال سازی نشه بعدا باید کوئری هاتون رو تغییر بدین
 

h_p609

Registered User
تاریخ عضویت
25 می 2011
نوشته‌ها
173
لایک‌ها
40
محل سکونت
ایران
من تا اونجا که بلدم نرمال سازی می کنم. مثلا کلیدها و روابط را در نظر می گیرم و از ذخیره داده های اضافی خودداری کردم.
فقط بیشترین چیزی که ذهنمو مشغول کرده و تا الان به صورت حرفه ای باهاش کار نکردم ایندکس هست. اینکه بعدا با توجه به پایشی که توسط sql profiler انجام خواهم داد تشخیص میدم که فلان فیلد باید ایندکس شود. فقط نگرانیم اینه که برای ایندکس کردن توی اون موقع دچار مشکل بشم
 

najafzadeh

کاربر فعال پایگاه داده ها
کاربر فعال
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
522
لایک‌ها
28
محل سکونت
قزقلعه
مثلا من یک دیتابیس دارم که یک جدولش در حدود 1 میلیون رکورد دارد. یکی از فیلدهاش را NVarchar(Max) گذاشته بودم که بعدا فهمیدم بهتره Nvarchar 500 بگذارمش. اما موقع ذخیره تغییرات sql اخطار میداد و وقتی تایید میگردم زمان زیادی طول میکشید و سرور نیز down میشد. آخرش هم پیغام میداد که نمیشه!

پس من الان که فرصت یادگیری دقیقتر ندارم نرم افزارم را طراحی می کنم و بعد سر فرصت روی performanc اون وقت میگذارم. درسته؟
اگر Server داون میشه شاید به خاطر اینه که کلیه منابع رو یه دفعه به دیتابیس شما اختصاص میده. شما می تونین منابع کمتری رو اختصاص بدین تا سرور از کار نیفته. مثلا اگر 4 تا سی پی یو دارین فقط یکی از سی پی یو ها رو اختصاص بدین.
 

h_p609

Registered User
تاریخ عضویت
25 می 2011
نوشته‌ها
173
لایک‌ها
40
محل سکونت
ایران
منظورم از down شدن به دلایل دیگری هست مثل قطع شدن ارتباط یا خرابی و ...
 
بالا