Qaytishni qayta ishlatish uchun yaratilish vaqtini ajratish dizayni

Qaytishni qayta ishlatish uchun yaratilish vaqtini ajratish dizayni

1. Muammo holati

Administrator sahifasida ma'lum foydalanuvchilar ro'yxatini ko'rish funksiyasini amalga oshirishda ko'p shartlar va tartibga solish mezonlari murakkab bo'lgan ko'rish lojiqasi ishlatilayotgan edi.

Qidiruv jarayonida faqatgina ma'lumotlarni olib qo'yish emas, balki maqsad shartlarini hisoblash, holatni aniqlash, tartiblash kabi jarayonlar ham amalga oshirilmoqda, So'rov kelganda har bir marta bir xil operatsiya takrorlanadi.edi.

Dastlab oddiy so'rov funksiyasi deb o'ylagan edim, ammo aslida har safar talab qilinganda bir xil ma'lumotlarni qayta hisoblashayotgani ko'zga tashlanadi.

Xususan, ma'lumotlar xususiyatlari tufayli real vaqtda doimiy ravishda o'zgarmaydigan ma'lumotlar emas ediHar bir so'rovda butun ma'lumotni qayta tuzish usuli operatsion samaradorlik nuqtai nazaridan samara bermaydiBunday tuyuldu.

Bu tuzilma quyidagi muammolarga ega edi.

  • Bir xil ma'lumotni takroriy hisoblash

  • Keraksiz DB so'rovlarining ko'payishi

  • Murakkab saralash va filtrlash mantiqining takroriy bajarilishi

  • Ma'lumotlar hajmi oshganda samaradorlik pasayishi ehtimoli

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

2. Yondashuv

Ushbu ma'lumot bir kun ichida katta o'zgarishlar sodir bo'lmaslik xususiyatiga ega edi.

Bu jihatdan kelib chiqib, har bir so'rovda ma'lumotlarni hisoblash o'rniga, Kunlik ma'lumotlarni yaratish va keyinchalik ularni qayta ishlatish tuzilmasini qo'lladik.ni qo'lladik.

Ya'ni, ma'lumotlarni har safar ko'rish vaqtida hisoblash tuzilmasi emas, balki kerakli vaqtda ma'lumotlarni ishlab chiqarish va allaqachon yaratilgan ma'lumotlardan qayta foydalanishni ta'minlash uchun yo'nalishni o'zgartirdik.

Bu jarayonda eng muhim deb hisoblagan qism “Qachon ma'lumotlarni yangi yaratish kerak?” edi.

Oddiy keshga o'xshab xotirada vaqtincha saqlash usulidan ko'ra, yaratilish vaqtini aniq boshqarish mumkin bo'lgan tuzilishga ehtiyoj bor deb hisobladik.

3. Amalga oshirish usuli

3.1 Ma'lumotlar tuzilmasini ajratish

Kunlik qayta foydalanish tuzilmasini qo'llash uchun ma'lumotlarni ikkita ajratib boshqardik.

ajratish

rol

Asos sanasi ma'lumotlari

O'sha kun ma'lumotlarini yaratish yuzasidan qaror

Qidiruv ma'lumotlari

Qidiruv uchun foydalaniladigan ma'lumotlar saqlanadi

Baza ma'lumotlari joriy sana asosida ma'lumot yaratish amalga oshirilganmi yoki yo'qligini belgilash vazifasini bajaradi.

Boshqa tomondan, so'rov maqsadidagi ma'lumotlar haqiqiy so'rovda qayta ishlatiladigan ma'lumotlarni saqlaydi.

Shunday qilib, yaratish holatini boshqaruvchi ma'lumotlarni va haqiqiy so'rov ma'lumotlarini ajratib qo'yingma'lumotlar oqimini sodda saqlashga harakat qildim.

buning ustiga ish tartibida ilova qayta ishga tushirishi yoki ko'p so'rovlar yuz berishi mumkin, shuning uchun xotira asoslangan boshqaruvdan ko'ra DB asosida boshqarish usuli yaxshiroq deb hisobladim.

3.2 Ma'lumotlarni yaratish va qayta ishlatish jarayoni

So'rov kelganda avval hozirgi sanaga asoslangan ma'lumot allaqachon mavjudligini tekshiramiz.

Agar belgilangan sana ma'lumotlari mavjud bo'lmasa, dastlabki so'rovda barcha ma'lumotlarni yaratamiz.

Keyinchalik esa, allaqachon yaratilgan ma'lumotlarni ko'rish uchun ishlatish rejalashtirilgan.

Jarayon quyidagicha:

1. Hozirgi sana asosida ma'lumot mavjudligini tekshirish

2. Agar ma'lumotlar yo'q bo'lsa, barcha ma'lumotlarni yaratish amalga oshiriladi

3. Agar ma'lumot mavjud bo'lsa, yaratilish jarayoni o'tkazilmaydi

4. Natija qaytarish

Bu tuzilma orqali Birinchi marta faqat ma'lumotlar yaratiladi, keyin esa qayta ishlatish jarayoniga o'tiladi qilindi.

Xususan, ushbu tuzilishda alohida rejalashtiruvchini o'rnatish o'rniga, dastlabki so'rov paytida ma'lumotlarning tabiiy ravishda yaratilishi uchun tuzilganoqimni soddalashtirishni maqsad qildik.

3.3 Ma'lumotlar yaratish logikasi

Ma'lumotlar yaratilayotganda, faqatgina eski ma'lumotlarni o'chirib, yangisini yaratish emas, eski holatni bir qismini saqlab, eng yangi ma'lumot asosida qayta qurish kerakbuni bajarish uchun mo'ljallangan.

yaratilish jarayonida quyidagi ishlar amalga oshiriladi.

  • Ishlatilmaydigan eski ma'lumotlarni olib tashlang

  • Maqsadli ma'lumotlarni zamonaviy standartlarga mos ravishda qayta tashkil eting

  • Joriy holat qiymatlarini saqlash

  • Me'yor sanasi ma'lumotlarini ro'yxatga olish

Xususan, mavjud holat qiymatini saqlab qolish jihatini muhim deb hisobladik. Har safar ma'lumotlarni to'liq tiklash jarayon davomidaboshqaruvchi o'zgartirgan ma'lumotlar ham yo'qolishi mumkin.Bu. Shuning uchun mavjud ma'lumotlarni tekshirib, faqat kerakli qiymatlarni saqlash uchun tuzdik.

4. Loyihalash maqsadi va ta'siri

Eski usul va yaxshilangan tuzilmani solishtirsak, quyidagilar mavjud.

Tavsif

Mavjud usul

Yaxshilangan usul

Ma'lumotlarni qayta ishlash usuli

Har bir so'rov uchun hisoblash

Birinchi marta yaratilgandan so'ng qayta foydalanish

DBni tekshirish

Takroriy so'rov yuz berdi

Yaratilgandan keyin faqat so'rov qilish amalga oshiriladi

Javob oqimi

Ariza har xil bo'lishi mumkin

doimiy saqlash

hisoblash xarajati

Takroriy hisoblash yuz beradi

Dastlabki yaratilganda bajariladi

Ma'lumotlarni boshqarish usuli

Nazorat nuqtasi markazida

Yaratilish vaqti markazida

Ushbu tuzilma orqali faqatgina ko'rish sonini kamaytirish emas, balki Ma'lumotlarni yaratish vaqti va tekshirish vaqtini ajratishBuni qilish mumkin edi.

Xususan, ushbu tuzilma real vaqt muhim bo'lmagan ma'lumot xususiyatlarini hisobga olib yaratilganHisoblash xaraji o'rniga qayta ishlatish samaradorligini birinchi o'ringa qo'yish uchun mo'ljallanganqilandi.

Shuningdek, ma'lumotlarni yaratish vaqtiga qarab boshqarish va so'rovlar oqimini oson saqlash imkoniyatiga ega bo'ldik.

5. Kiritmalar

Boshida oddiy qidirish funksiyasi deb o'yladim, lekin amalga oshirish jarayonida “Nima uchun bir xil ma'lumotlarni doimiy ravishda qayta hisoblayapmiz?” degan savolga duch keldim.

Va ushbu savolga ergashayotganda, oddiy so'rovni optimallashtirishdan ko'ra muhimroq narsa «ma'lumotlarni qachon yaratish va qanday boshqarish» ekanligini his qildim.

Ushbu ish orqali samaradorlikni oshirish - bu faqat ma'lumotlarni tezroq olish emasMa'lumotlar oqimini qayta loyihalash jarayonidegan xulosaga keldim.

Shuningdek, ko'rish mantiqidan tashqari, ma'lumotlarni yaratish vaqti, holatlarni saqlash usuli, qayta foydalanish tuzilishi ham nazarga olinmasa, barqaror boshqaruv tuzilmasini yaratish mumkinligi haqida tajriba to'pladim.

zero

Site footer