Laraveli silurbar saate tõhusalt kasutada, et tuvastada oma Laraveli rakenduses N+1 päringuprobleemid, järgides neid samme ja mõistdes oma pakutavaid funktsioone:
Mis on N+1 päringu probleem?
N+1 päringuprobleem ilmneb siis, kui teie rakendus käivitab ühe päringu, et hankida kirjete komplekt (n), ja seejärel käivitab iga kirje jaoks täiendava päringu, et saada seotud andmeid, mille tulemuseks on N+1 päringud kokku. See viib jõudluse halvenemiseni liigsete andmebaasipäringute tõttu [4] [5].Laraveli siluri kasutamine n+1 päringute tuvastamiseks
- Installimine ja seadistamine: kõigepealt installige Laravel Debugbar helilooja kaudu, kui seda pole veel installitud. See integreerub sujuvalt Laraveliga ja pakub visuaalset liidest päringu ajal teostatud päringute jälgimiseks [1] [5].
- Päringu reaalajas jälgimine: Laravel Debugbar näitab kõiki SQL-i päringuid, mis on täidetud päringus, sealhulgas päringute arv ja nende täitmisaeg. See võimaldab teil märgata, kui paljusid sarnaseid päringuid korratakse korduvalt, see on n+1 probleemide tunnus [1] [5].
- Üksikasjalik päringuteave: Debugbar pakub üksikasjalikku teavet iga päringu kohta, sealhulgas faili- ja reanumber oma koodis, kus päring käivitati. See aitab täpselt kindlaks teha täpse koodi, mis põhjustab N+1 päringuid, mis on hindamatu suuremates projektides [8].
- N+1 päringute kohandatud sõnumid: kombineerituna Laraveli päringute detektori paketiga (mis integreerub siluribariga), võib see välja tuua n+1 päringud selgesõnaliselt, lisades hoiatusi või sõnumeid sibulate liideses. See pakett tuvastab, kui suhtepäringut täidetakse rohkem kui läve ja teatab, et lisate innuka laadimise [2] [3].
Kuidas kasutada siluribari N+1 päringute tuvastamiseks
1. Luba silumine arenduses: veenduge, et silumine oleks teie kohalikus või arenduskeskkonnas lubatud, et vältida päringu üksikasjade paljastamist tootmises.
2. Laadige testitud leht või marsruut
3. Avage silur paneel: siluri liideses (tavaliselt brauseri allosas) minge vahekaardile "Päring".
4. Jälgige päringute arvu: otsige korduvaid päringuid, mis on sarnased, kuid erinevad parameetrite väärtustega, osutades mitmele päringule, mis toovad seotud andmed ükshaaval.
5. Kontrollige päringu päritolu: Klõpsake individuaalsetel päringutel, et näha virna jälje või faili/rea numbrit, kus päring käivitati. See aitab tuvastada täpse silmuse või koodisektsiooni, mis põhjustab N+1 probleemi.
6. Kasutage märguannete jaoks Laraveli päringute detektorit: Valikuliselt installige Laraveli päringute detektori pakett, mis võib silurisse sisenemist lisada, kui tuvastatakse n+1 päringuid, muutes lihtsamaks märkamist ilma päringuid käsitsi loendamata [3].
Parimad tavad pärast tuvastamist
- Kasutage oma kõnekates päringutes innukat laadimist (`koos ()`), et olla seotud mudelitega ja vähendada päringute arvu.
-Kasutage Laraveli sisseehitatud ennetamist, lisades `mudel :: PreventLazy Lowning (! App ()-> isproduction ())` oma `AppServiceProvider", et visata erandeid laisakoormusele arengu ajal, aidates N+1 küsimust varakult tabada [4] [9].
- Jälgige arenduse ajal pidevalt päringuid siluribaga, et säilitada päringu optimaalne jõudlus.
Laraveli silumise päringu visualiseerimise ja selliste tööriistade nagu Laravel Query detektor abil saate tõhusalt tuvastada ja parandada N+1 päringuprobleeme, parandades märkimisväärselt oma rakenduse andmebaasi jõudlust [1] [2] [3] [3] [5].
Tsitaadid:
]
[2] https://github.com/beyondcode/laravel-query-detector
[3] https://beyondco.de/docs/laravel-query-detector/USAGE
[4] https://laravel-news.com/laraveln-query-problems
]
]
[7] https://laraveldaily.com/lesson/eloquent-performance/n1-query-debugbar-eager-loading
]
]