ورود

View Full Version : نرمال سازی دیتابیس حجیم برای وب سایت با sql server 2012



iranaca
چهارشنبه 14 تیر 1391, 13:05 عصر
سلام دوستان
یک دیتابیس حجیم دارم که در روز هزاران بار توسط سرور سایت فراخوانی میشه، اطلاعات کتاب های جهان در اون موجوده، اطلاعات کتاب ها به زبان های مختلف در یک جدول با یک میلیون رکورد...

1- در سطح سوم نرمال سازی وب توصیه میشه اگه نیازی نیست جدول ها رو نشکنیم، اگر من بیام و جدول ها رو بشکنم باید 90 جدول مختلف با توجه به category ها و زبان ها داشته باشم (از یک طرفم category ها و زبان ها در حال افزایش هستن)، به نظر خودم بهتره از پارتیشن کردن جدول ها استفاده کنم چون اینجوری دیگه بار پردازشی برای سرور سایت هم کمتر خواهد بود و یک جدول ایندکس بسازم که جستجوهای قبلی تو اون باشن و جدول بزرگ کمتر فراخوانی بشه، نظر شما چیه آیا جدول ها رو بشکنم، ( از طرفی با شکستن جدول ها بار پردازشی join برای سرور زیاد خواهد شد و مدیریت بسیار پیچیده تر میشود!)

من الان فقط 5 تا جدول دارم، کتاب ها، انتشارت، نویسندگان، تگ و مجموعه ها (categories)

2- سوال دوم اینکه که وقتی از full text استفاده میکنیم آیا مقادیری که قبلا جستجو شدن در فایل full text ایندکس میشن؟ که دفعه بعد زودتر به جواب برسیم؟ (مطالب full text رو در این سایت خوندم ولی این مورد داخلشون نبود)، آیا با وجود استفاده از full text نیازه من یک جدول ایندکسینگ بسازم و مقادیری که قبلا جستجو شده رو تو اون بزارم یا نه؟

با تشکر

baktash.n81@gmail.com
چهارشنبه 14 تیر 1391, 13:34 عصر
در مورد سئوال اول بهتره جدول ها رو نشکنید در ضمن اگر می تونید مقداری افزورنگی رو درون لایه برنامه مدیریت کنید این کارو انجام بدید ... مثلا نویسندگان و کتاب ها با یک جدول واسط بهم ارتباط دارن در ضمن شما اطلاعات اصلی مثل نام و نام خانوادگی نویسندگان رو به صورت یه XML درون جدول کتاب نگه می دارید که وقتی کاربری خواست که اطلاعات اولیه کتاب رو مشاهده کنه لازم نباشه شما بین این سه جدول Join برقرار کنید ...

حمیدرضاصادقیان
چهارشنبه 14 تیر 1391, 13:53 عصر
سلام.
در مورد سوال اول بهتره از Partitioning استفاده کنید.
نهایتا میتوانید کتابهای خیلی قدیمی رو در یک جدول دیگه به نام Archive قرار بدید که حجم جدول اصلی شما کاهش پیدا کنه.
درمورد سوال دوم شما آیا متن کل کتابهارو نگهداری میکنید؟ FTS رو میخواهید روی چه فیلدی انجام بدید؟

iranaca
چهارشنبه 14 تیر 1391, 19:03 عصر
با تشکر از پاسخ
FTS رو روی نام کتاب و توضیحات انجام میدیم، متن کل کتاب ها رو نگه نمیداریم فقط description کتابها رو نگه میداریم. آیا فایلی که FTS با اون کار میکنه و روی هارد هست جستجوی های قبلی را در خودش ذخیره میکنه یا نه؟ (در واقع ایندکس آن دقیقا به چه صورتی است!)