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