PDA

View Full Version : راهنمایی در مورد پارتیشن بندی کردن جدول



mahdi bg
یک شنبه 20 اردیبهشت 1394, 18:42 عصر
سلام
من یک برنامه نوشتم که آلان نزدیک به 1.000.000 کاربر داره و یک سری مشکل برای برنامه به وجود اومده. کلیت برنامه اینه که، من یک سری مشتری دارم که از طریق سایت درخواست های را درج میکنند و بر اساس اون درخواست ها یک سری فعالیت انجام میشه، یک چیری شبیه مورد زیر

جدول مشتری : شامل اطلاعات مشتری
جدول خدمات : شامل خدماتی میشه که ما میدیم.
جدول واسط دو جدول فوق : که کلید خارجی مشتری، کلید خارحی خدمت و یک سری اطلاعات اضافی در مورد روز درخواست، ساعت درخواست، وضعیت درخواست و ....

با توجه به اینکه هر مشتری روزی 2-3 درخواست برای ما ارسال میکنه، و اینطوری روزی حداقل 2 تا 3 میلیون با جدول واسط اضافه می شه و وقتی می خوام گزارش گیری کنم خیلی زمان می بره.

چندتا پیشنهاد دوستانم دادند در مورد اینکه
1- استفاده از ایندکس.
2-پارتیشن بندی کردن جداول.

سوالاتی که برام پیش اومده بود
1- با توجه به اینکه اکثریت جستجو های من روز جدول واسط هستش و روی سه فیلد کلید خارجی مشتری، کلید خارحی خدمت و روز درخواست، روی این سه تا ایندکس تعریف کنم؟
2- بهترین روش برای پارتیشن بندی کردن داده های جدول میانی چطوری می تونه باشه بر اساس چه معیاری پارتیشن بندی انجام بدم؟

ممنون

Davidd
یک شنبه 20 اردیبهشت 1394, 19:02 عصر
سلام. احتمالا کلید خارجی مشتری، کلید خارجی خدمت باهم کلید اصلی تشکیل میدن که در اینصورت SQL به صورت پیش فرض یه ایندکس روی این دو فیلد میسازه.
این 2-3 میلیون رکوردی که روزانه به جدول اضافه میشه در جدول باقی میمونه یا حذف میشه؟ اگه درجدول باقی میمونه میتونی یه جدول آرشیو درست کنی و رکوردهای بررسی شده به این جدول انتقال بدی.