⊗ppSpOtSQ 80 of 83 menu

Optimizimi i përdorimit të kërkesave SQL në PHP

Ekzekutimi i kërkesave SQL në bazën e të dhënave është një operacion shumë i ngadaltë. Prandaj duhet të përpiqemi të minimizojmë numrin e kërkesave në bazë.

Gabimi më i zakonshëm është ekzekutimi i shumë kërkesave SQL në një lak, kurse ekzistojnë kërkesa alternative që lejojnë të kryhet e dëshiruara me një komandë.

Le të shohim me një shembull.

Le të themi se na është dhënë një grup me id të regjistrimeve në bazën e të dhënave dhe ne duhet të fshijmë regjistrimet me ato id.

Pa menduar shumë, mund të shkruajmë një konstruksion "të mrekullueshëm" të tillë:

<?php $ids = [1, 2, 3, 4, 5]; // grup për fshirje foreach ($ids as $id) { mysqli_query($link, "DELETE FROM users WHERE id=$id"); } ?>

Problemi i këtij kodi është se në lak ekzekutohet shumë kërkesa. Imagjinoni sikur në grup të ketë 100 elementë - do të ekzekutohen 100 kërkesa në bazë!

Kurtha e veçantë e detyrës së përshkruar është se gjatë zhvillimit të faqes internetore baza e të dhënave është e vogël dhe kërkesat ekzekutohen shumë shpejt. Megjithatë, ndërsa faqja internetore punon në hosting, baza do të rritet, kërkesat do të ekzekutohen gjithnjë e më ngadalë, dhe mund të arrijë në atë pikë që, për shkak të ekzekutimit të qindra kërkesave në lak, faqja të ngarkohet më shumë se një minutë!

Duke bërë shumë pak përpjekje, mund të bëhet që të ekzekutohet vetëm një kërkesë, kështu:

<?php $ids = [1, 2, 3, 4, 5]; $str = implode(',', $ids); // marrim stringun '1,2,3,4,5' mysqli_query($link, "DELETE FROM users WHERE id IN ($str)"); ?>

Optimizoni kodin e dhënë më poshtë:

<?php $arr = [1, 2, 2, 4, 5]; $res = []; for ($i = 1; $i < count($arr); $i++) { $note = mysqli_query($link, "SELECT * FROM users WHERE id=$id"); for ($data = []; $row = mysqli_fetch_assoc($note); $data[] = $row); $res[] = $data; } var_dump($res); ?>
Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo