Sobes.tech
Middle

Entity Framework Coreдеги кэшти кантип жүргүзүү керек?

sobes.tech AI

AIден жооп

Entity Framework Core (EF Core) эки деңгээлдүү кэширүүгө ээ:

  1. Контекст кэши (Identity Resolution): Бул биринчи деңгээлдеги кэш. EF Core учурдагы DbContext ичинде жүктөлгөн объекттерди көзөмөлдөйт. Эгер EF Core ошол эле ачкыч мааниси менен объектти эс тутумда тапса, ал ошол объектти кайтарат, базадан маалымат суроого муктаж эмес.

    • Бир контекстте бирдей маалыматтарды кайра-кайра жүктөөнү алдын алат.
    • Өзгөртүүлөр болсо, эс тутумдагы экземплярлер автоматтык түрдө жаңыланат.
    • Деги эле иштейт жана атайын конфигурацияны талап кылбайт.
  2. Суроо кэши (Query Caching): Бул экинчи деңгээлдеги кэш. EF Core SQL суроолорунун аткаруу планын кэшке сактайт. Ошол эле суроо кайра аткарылса, EF Core ал алдын ала түзүлгөн планды колдонуп, SQL кайра түзүүнү болтурбайт.

    • Бирдей структурадагы (бирок параметрлери башкача) суроолордун аткаруу ылдамдыгын жакшыртат.
    • Кэшке суроонун жыйынтыгы эмес, анын аткаруу планы сакталат.
    • EF Core ички механизмдер тарабынан башкарылат жана сырттан конфигурациялоо же тазалоо мүмкүн эмес.

Көңүл буруу керек, EF Core колдонмодо маалыматтарды ички кэшке сактоо мүмкүнчүлүгүн бербейт (мисалы, көп колдонулган маалыматтарды суроо-талабалар ортосунда сактоо үчүн). Мындай сценарийлер үчүн сырткы чечимдер колдонулат, мисалы Redis, IMemoryCache же башка таралган кэштер.