تاثیر foreign key(کلید خارجی) و Performance در Entity Framework
با سلام
آیا بدون یا نبودن foreign key(کلید خارجی) تاثیری روی Performance در Entity Framework دارد یا نه؟
روی جداول دیتابیس از foreign key ( کلید خارجی) استفاده نمی کنیم و بعضی از همکاران Develop کندی صفحه و یا متد را دلیل نبودن foreign key ( کلید خارجی) می دانند.
اگر دوستان تجربه مشترک در این زمینه دارن می خواستم به اشتراک بگذارند.
با تشکر
دوست عزیز نرم افزار های مدیریت پایگاه داده همونطور که از نامشون پیداست RDBMS گفته میشه. یعنی Related Database Management Studio. که معنیش میشه "محیط مدیریت پایگاه داده رابطه ای "
یعنی رابطه جزو ساختار دیتابیس هست و بدون رابطه اصلا دیتابیس صرفا چندتا فایل هست که اطلاعات توش نگهداری شده. ایجاد کلیدهای اصلی (Primary Key) و کلیدهای خارجی (Forign Key) جزوی از ساختار دیتابیس هستن و بدون اینها دیتابیس شما Normal نیست. اگر شما کلید خارجی نداشته باشید احتمال ایجاد آنومالی و افزونگی داده در جداول شما بشدت بالا میره (در مورد نرمال سازی، افزونگی داده و آنومالی در دیتابیس جستجو کنید)
اما در مورد Performance قطعا وقتی روابط بین جداول ایجاد میشن در کارایی دیتابیس تاثیر دارن و ممکنه قدری باعث کند شدن جستجو ها بشه اما نکته اصلی اینجاست که شما اگر این روابط رو تعریف نکنید و به وجود نیارید جستجوها و واکشی اطلاعات به مراتب پیچیده تر و ضعیف تر میشن. دلیلش هم واضحه، شما وقتی اطلاعاتی رو میخواید به کاربر نشون بدید قطعا در بیشتر موارد این اطلاعات از جداول مختلف نمایش داده میشه و ناچار هستید Join هایی داشته باشید. در این موارد شما باید Join های خودتون رو از طریق دستورات Entity Framework انجام بدید در حالی که اگر کلید خارجی تعریف می کردید این Join ها در داخل خود Sql Server انجام میشه و به مراتب Join خود Sql سریعتر از انتیتی فریم ورک هست.
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2