Қандай қымбат? тұрақты дерекқор сұрауларын немесе алдымен объектіні массивіне жүктеуді?

Мен іске қосу кезінде тізімде мәндерді көрсету үшін дерекқордың курсорын орнататын қолданбаны жасаймын. Қолданбаның деректер базасында іске қосылған деректер жаңартылады және курсорды үнемі жаңартамын.

Бұл біршама жұмыс істейді, бірақ кейде дерекқор жаңартуларының артта қалып, ескі деректерді бірнеше секундқа дейін көрсетеді.

Егер барлық деректерді (шамамен 20-дан 20-ға жуық жолдар мен шамамен әрбір 10-дан 20-ға жуық сандар) іске қосқан кезде объектілер массивіне жүктесем және дерекқорға тек қана жабық болса, неғұрлым тиімді бола ма?

Дерекқор сұрауларының объектілердің массивтеріне қарсы шығуы деген не?

Көмек үшін алғыс айтамыз!

1

2 жауаптар

Егер сіздің сөйлескен көп деректеріңіз (миллиондаған жолдар) болмаса, оларды сақтауға арналған жадта объектілерді құрудың құны (CPU) DB сұрауын орындау уақытына қарағанда аз болады.

1
қосылды

Бұл сіздің «қымбат» түсініктеріңізге байланысты. Егер сіз өткізу қабілетінен болсаңыз, тұрақты сұраулар қымбатырақ болады. Қашықтағы дерекқорға әрбір сұрау миллисекундтар тәртібінде жүреді, ал жадтағы нысанға сұрау наносекундтар тәртібінде болады.

Егер «қымбат» дереу өңдеу жылдамдығын желінің кешігуін есептейтін болса, онда оларды барлық жадқа жүктеу қымбатырақ болады, себебі жүйе әрекетті орындау кезінде қосымша ақпаратпен танысады.

Сіздің жағдайда, сіз Android-пен жұмыс істеп жүргендіктен, мен сіздің ең жақсы ставкаңыз - бұл екі комбинация. Сіз кез келген уақытта жұмыс істеуге тура келетіндіктен көп деректерді жүктеп алғыңыз келеді. Деректерді іздеуге көмектесетін болса, деректерге арналған қосылыстар тізімін жасау мүмкін болуы мүмкін. Жақсы көршілес тізімдер жүйесімен, сіз қазір бар деректермен жұмыс істей отырып, жақын арада қажет болатын деректерге сұрау жасай аласыз (бұл желі күту уақытының әсерін азайтуға көмектеседі).

Жаңартылатын бөлікке келетін болсаңыз, өзгерістерді кезекке қоюға және оларды синхронды түрде жүктеуге жиналмасаңыз, сіз бұл кешіктіруден аулақ бола алмайсыз. Бұл желі қалай жұмыс істейтіні. Дегенмен, интерфейспен синхронды түрде жұмыс істей алсаңыз, өзгертулерді кезекке қоюға және жаңартуларды физикалық түрде дерекқор деңгейінде орындауға болады, сонда пайдаланушы келесі тапсырманы жалғастырады.

0
қосылды