Ko'rsatmalarni qayta ishlatish uchun yaratish vaqtini ajratish dizayni

Ko'rsatmalarni qayta ishlatish uchun yaratish vaqtini ajratish dizayni

### 1. Muammo holati

Administrator sahifasida ma'lum foydalanuvchilar ro'yxatini ko'rish funksiyasini amalga oshirganimda, shartlar ko'p va tartib bo'yicha murakkab ko'rish logikasidan foydalangan edim.

Qidirish jarayonida faqatgina ma'lumotlarni olish emas, balki maqsad shartlarini hisoblash, holatni aniqlash, saralash jarayonlari ham birga amalga oshirilayotgandi va so'rovlar kelganda har safar bir xil operatsiyalar takrorlanadigan tuzilma edi.

Dastlab bu oddiy qidiruv funksiyasi deb o'yladim, lekin aslida har bir so'rovda bir xil ma'lumotlarni doimiy ravishda qayta hisoblayotganimni ko'rishga boshladim.

Xususan, maʼlumotlarning xususiyatidan kelib chiqib, real vaqt rejimida doimiy ravishda o‘zgarayotgan maʼlumotlar bo‘lmasa ham, har bir so‘rovda butun maʼlumatni yangidan shakllantirish usuli operatsion samaradorlik nuqtai nazaridan samarali emas deb hisoblandi.

Ushbu tuzilishda quyidagi muammolar mavjud edi.

- bir xil ma'lumotni takroriy hisoblash

- keraksiz DB so'rovlarining ko'payishi

- Murakkab saralash va filtrlamoq mantiqini qayta-qayta bajarish

- Ma'lumotlar hajmi oshganda ish faoliyatining pasayishi ehtimoli

Faqat so'rovni optimallashtirish bilan cheklanmasdan, ma'lumotlarni yaratish va ulardan foydalanish jarayonini qayta ko'rib chiqish zarur edi.

### 2. Yondashuv

Ushbu ma'lumotning bir kun davomida katta o'zgarishlar yuz bermaslik xusiyati bor edi.

Bu nuqtani inobatga olgan holda, har bir so'rovda ma'lumotlarni hisoblash o'rniga, **kunlik ma'lumotlarni yaratish va keyin qayta foydalanish tuzilmasi** qo'llanildi.

Ya'ni, ma'lumotlarni har bir ko'rish paytida hisoblash tuzilmasi emas, balki kerakli paytda ma'lumotlarni yaratish va allaqachon yaratilgan ma'lumotlardan qayta foydalanish yo'nalishini o'zgartirdik.

Ushbu jarayonda eng muhim deb hisoblangan jihat “qachon yangi ma'lumot yaratish kerak?” edi.

Qayta tiklashdan farqli o'laroq, xotirada vaqtinchalik saqlash usuli sifatida emas, balki yaratish vaqtini aniq boshqarish mumkin bo'lgan tuzilma zarurligini aniqladik.

### 3. Amalga oshirish usuli

#### 3.1 Ma'lumotlar tuzilishini ajratish

Kunlik qayta foydalanish tuzilmasini qo'llash uchun ma'lumotlarni ikkita bo'lib boshqarildi.

| ajratish | rol |

|------|------|

| asoslash kuni ma'lumotlar | ushbu kunda ma'lumotlar yaratish belgisi |

| so'rov ma'lumotlar | haqiqiy so'rovda foydalaniladigan ma'lumotlarni saqlash |

Asos sanasi ma'lumotlari hozirgi sana asosida ma'lumotlar yaratilgan yoki yo'qligini aniqlash vazifasini bajaradi.

Boshqa tomondan, so'rov maqsadidagi ma'lumotlar haqiqiy so'rov paytida qayta foydalaniladigan ma'lumotlarni saqlaydi.

Shunday qilib, hosil bo'lish holatini boshqaruvchi ma'lumotlarni va haqiqiy ko'rish ma'lumotlarini ajratib, ma'lumotlar oqimini soddalashtirishga harakat qildik.

Shuningdek, ishchi muhitda ilovani qayta ishga tushirish yoki ko'p so'rovlar holatlari paydo bo'lishi mumkinligi sababli, xotira asosida boshqarish o'rniga DB asosida boshqarish usuli mosroq deb hisobladik.

#### 3.2 Ma'lumotlar yaratish va qayta ishlatish oqimi

So'rov kelganda, avval amalga oshiruvchi sana asosida ma'lumotlar allaqachon mavjudligini tekshiradi.

Agar belgilangan sananing ma'lumotlari mavjud bo'lmasa, dastlabki so'rovda barcha ma'lumotlarni yaratish kerak.

Shundan so'ng, allaqachon yaratilgan ma'lumotlardan foydalanishni ko'zda tutdi.

Jarayon quyidagicha bo'ladi.

1. Hozirgi sana asosida ma'lumot mavjudligini tekshiring

2. Agar ma'lumotlar bo'lmasa, butun ma'lumotlarni yaratish amalga oshiriladi

3. Agar ma'lumotlar mavjud bo'lsa, yaratish jarayoni holda ko'rish amalga oshiriladi

4. Natija qaytarish

Ushbu tuzilma orqali dastlabki 1 marta ma'lumot yaratish amalga oshirildi va keyin qayta foydalanish oqimini kuzatish uchun o'rnatildi.

#### 3.3 Ma'lumotlarni yaratish mantiqiyasi

Ma'lumotlarni yaratishda mavjud ma'lumotlarni to'liq o'chirib, yangisini yaratish emas, balki mavjud holatni qisman saqlab, eng yangi ma'lumotlarga asoslanib qayta tuzishga mo'ljallangan.

Yaratish jarayonida quyidagi ishlar amalga oshiriladi.

- Endi mavjud bo'lmagan eski ma'lumotlarni olib tashlash

- Eng yangi mezon asosida ma'lumotlarni qayta tuzish

- Mavjud holat qiymatlarning ba'zi qismlarini saqlab qolish

- Asoslash sanasi ma'lumotlarni ro'yxatga olish

Ayniqsa, mavjud holat qiymatini saqlab qolish qismiga e'tiborni qaratdim.

Har safar ma'lumotlarni to'liq yangilab turish, boshqaruv jarayonida ma'lumotlarni o'zgartirgan administrator tomonidan kiritilgan ma'lumotlarning ham yo'qolishiga olib kelishi mumkin.

Shuning uchun mavjud ma'lumotlarni tekshirib, faqat kerakli qiymatlarni saqlab qolish uchun tuzildi.

### 4. Loyihalash maqsadi va ta'siri

Mavjud usul va takomillashtirilgan tuzilmani taqqoslasak, quyidagilarni ko'ramiz.

| ajratish | mavjud usul | yaxshilangan usul |

|------|----------|----------|

| Ma'lumotlarni qayta ishlash usuli | Har bir so'rovda hisoblash | Birinchi marta yaratilgandan keyin qayta foydalanish |

| DB dan olingan | Takroriy so'rovlar yuzaga keladi | Yaratilgandan keyin faqat so'rov o'tkaziladi |

| javoblar oqimi | har bir so'rovda o'zgarishi mumkin | doimiy qilish |

| hisoblash xarajatlari | takroriy hisoblashlar sodir bo'ladi | faqat birinchi yaratilishda bajariladi |

| Ma'lumotlarni boshqarish usuli | Tekshirish vaqtiga asoslangan | Yaratilish vaqtiga asoslangan |

Ushbu tuzilma orqali oddiygina tekshirish sonini kamaytirish bilan birga ma'lumotlarni yaratish va tekshirish vaqtlarini ajratish mumkin bo'ldi.

Xususan, ushbu tuzilma real vaqt talab qilinmaydigan ma'lumot xususiyatlarini hisobga olib, hisoblash xarajatidan ko'ra qayta ishlatish samaradorligini ustun qo'yish uchun mo'ljallangan.

Shuningdek, ma'lumotlarni yaratish vaqti asosida boshqarish orqali so'rov oqimini o'zida saqlab turishni soddalashtirishga muvaffaq bo'ldik.

### 5. Qayta ko‘rish

Dastlab, bu oddiy so‘rov funksiyasi ekan deb o‘yladim, ammo amalga oshirish jarayonida “Nima uchun bir xil ma’lumotlarni doim qayta hisoblayapmiz?” degan savolga duch keldim.

Va o'sha savolni kuzata borar ekanman, oddiy so'rov optimizatsiyasidan ko'ra muhimroq narsa 'ma'lumotlarni qachon yaratish va qanday boshqarishimiz kerakligi' degan fikrga keldim.

Ushbu ish orqali samaradorlikni oshirish oddiygina qabul qilish tezligini oshirish emas, balki ma'lumotlar oqimini qayta loyihalash jarayoni ekanligini o'rgandim.

Shuningdek, ko'rish logsidan tashqari, ma'lumot yaratish vaqti, holatni saqlash usuli va qayta foydalanish tuzilmasini ham hisobga olish kerakligi sababli barqaror ishlash tuzilmasini yaratish mumkinligini ham his qildim.

zero

Site footer