همیشه شنیدیم که normalization داده کمک زیادی به سرعت کوئری و کاهش حجم داده ها میکنه و از تکرار داده ها جلو گیری میکنه.
در ادامه چند تا مورد میارم که Denormalization تاثیر مثبتی داشته:
- کاهش تعداد `JOIN`ها و افزایش سرعت خواندن داده
- بهینهسازی برای خواندن دادهها در گزارشها و داشبوردها
در شرایطی که خواندن دادهها مهمتر از بهروزرسان شونه مثلاً در گزارشگیری یا داشبوردهای تحلیلی Denormalization بهترعه
دو تا مثال هم بزنم از این مورد:
- سیستم خرید و فروش فروشگاه ها
برای فروشگاه ها معمولا اطلاعات مشتریان، کالاها و فاکتورهای خرید در جداول جداگانه ذخیره میشن و اگر قرار گزارشی داشته باشیم که اطلاعات این سه تا جدول رو با هم بهمون بده (مثلا همه فاکتورهای ماه گذشته به همراه اطلاعات کامل مشتری) باید از join استفاده بشه . اما اگر این جداول دائما بروز نشن و و صرف گزارش گیری باشه میشه با این تکنیک join رو حذف کرد و سرعت رو بالا برد.
- سیستم انبار داری و موجودی فروشگاه
در سیستم انبارداری و موجودی کالاها هم به همین صورته، همه محصولات به همراه قیمت و اطلاعات تکمیلی در یه جدول ذخیره میشه و اطلاعات مربوط به فاکتور ها در یه جدول جداگانه
وقتی جداول رو نرمالایز میکنیم در هر فاکتور صرفا ایدی محصول رو نگه میداریم، و زمان گرفتن گزارش از مجموع اقلام یه فاکتور قطعا سرعت کوئری پایین خواهد بود اما در شرایط که قیمت ها در بازه زمانی های کوتاه آپدیت نمیشن این امکان وجود داره که همزمان با اقلام قیمت و بقیه .موراد هم ثبت بشه تا سرعت کوئری خواندن اطلاعات بالا بره