Laraveli kõneka ORM -i ja RAW SQL -i päringute tulemuslikkuse erinevused on märkimisväärsed ja tulenevad peamiselt abstraktsioonist ja töötlemise peatuskujudest, võrreldes RAW SQL -i otsese täitmisega.
esinemine ülekõnelises ormis
Elaquent pakub objekti-suhte kaardistamiskihti, mis tõlgib andmebaasi kirjed PHP-objektideks. See abstraktsioon lisab mugavust ja loetavust, kuid tutvustab mitmeid jõudluskulusid:
- Suurenenud protsessor ja mälu kasutamine: kõnekas ajahetke iga andmebaasi kirje jaoks objekti, mis on hangitud või manipuleeritud, mis tarbib rohkem mälu ja protsessori ressursse kui RAW SQL, mis töötab otse andmeridadel ilma objektide teisendamiseta [3] [6].
- Aeglasema täitmisajad: täiendava töötlemise tõttu võtab kõnekad päringud tavaliselt kauem aega. See on eriti väljendunud hulgioperatsioonides, näiteks tuhandete kirjete sisestamine või värskendamine, kus kõneka üldkulud kogunevad märkimisväärselt [3] [6].
- keeruline päringu genereerimine: mitme tabeliga seotud toimingute jaoks genereerib kõnekas sageli mitut SQL-i päringut või keerulisi päringuid, mis on vähem optimeeritud kui üks hästi meisterdatud RAW SQL-i liituspäring. See viib pikema täitmisaega valitud operatsioonides mitme liitumisega [3].
RAW SQL -eelised
RAW SQL -päringud mööduvad ORM -kihist, saates andmebaasi otsesed SQL -käsud. Selle tulemuseks on:
- Kiirem täitmine: RAW SQL -päringud teostavad kiiremini, kuna need väldivad objektide loomise ja tõlkekihtide üldkulusid. Jõudlustestid näitavad SQL -i töötlevat, mis on kõnekas, mis on kõnekas, värskendades ja valivad toiminguid, kusjuures ajaerinevused suurenevad, kui andmemaht või päringu keerukus kasvab [3] [6].
- Parem mahu- ja keerukate toimingute jaoks: RAW SQL on tõhusam puistevahendite/värskenduste ja keerukate päringute jaoks, mis hõlmavad mitut liitu, kuna see võimaldab täpset kontrolli päringu struktuuri ja optimeerimise üle [3] [6].
Millal igat kasutada
- kõnekas ORM: kõige paremini sobib väikeste ja keskmise suurusega rakenduste jaoks, millel on suhteliselt lihtne CRUD-toimingud ja väiksemad andmekogumid. See suurendab arendaja tootlikkust, koodide loetavust, hooldatavust ja turvafunktsioone, muutes selle ideaalseks, kui toores jõudlus pole kriitiline [3] [6].
- RAW SQL: eelistatakse jõudluskriitiliste rakenduste jaoks, mis käsitlevad suure hulga andmeid, hulgioperatsioone või keerulisi päringuid, kui täitmiskiirus on esmatähtis. RAW SQL tagab nende stsenaariumide korral suuremat kontrolli ja tõhusust [3] [6].
kokkuvõte
Kuigi kõnekas ORM pakub olulisi arenguhuvilisi, on sellel mõõdetav tulemuslikkuse karistus võrreldes SQL -i töötlemata päringutega. Erinevus on kõige tähelepanuväärsem suuremahuliste andmetoimingute ja keerukate päringute korral. RAW SQL täidab kiiremini ja kasutab vähem ressursse, kuid nõuab rohkem käsitsi päringuhaldust. Nende vahel valimine sõltub rakenduse jõudlusnõuetest ja arenguprioriteetidest [3] [6].
Tsitaadid:
]
]
[3] https://www.diva-portal.org/smash/get/diva2:1014983/fulltext02
]
[5] https://www.youtube.com/watch?v=n_rbsojfcau
]
]
]