Kezdőoldal » Számítástechnika » Programozás » MySQL/PHP: az alábbiak közül...

MySQL/PHP: az alábbiak közül melyik a jobb megoldás a sorok megszámolásához egy táblában (példák a leírásban)?

Figyelt kérdés

Az érdekelne, hogy a két verzió közül melyik a gyorsabb? Ha a lekérdezés nagy méretű táblából történik, és telepakolom mindenféle lekérési feltételekkel (WHERE meg HAVING), akkor melyik a jobb megoldás?


1. verzió:


$query = "SELECT COUNT(*) AS mennyi FROM autok";

$mysql_query = mysqli_query($conn, $query);

while($row = mysqli_fetch_array($mysql_query)) {


echo "sorok szama: " . $row["mennyi"];


}


2. verzió


$query = "SELECT * FROM autok";

echo "sorok szama: " . mysqli_num_rows(mysqli_query($conn, $query));



2019. febr. 18. 00:09
 1/3 anonim ***** válasza:
Ha csak a lekérdezés rekordjainak száma érdekel, akkor memóriahasználat szempontjából jobb a SELECT COUNT(), ugyanis az csak a lekérdezett rekordok számát adja vissza, a SELECT * meg az összes rekordot. Tovább finomíthatod a dolgot, ha COUNT(*) helyett a tábla kulcsát használod - például: COUNT(id).
2019. febr. 18. 00:27
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

Természetesen az 1. verzió. Ugyanis ilyankor csak az aggregáló függvény eredményét kapod meg, tehát a MySQL sem fog a konkrét adatokkal foglalkozni, csak visszaadja, hogy hány sor van.

Míg a 2. megoldásnál az adatokat is kiolvassa és visszaadja, ami memóriát és számítási kapacitást igényel.

2019. febr. 18. 08:30
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

"Tovább finomíthatod a dolgot, ha COUNT(*) helyett a tábla kulcsát használod - például: COUNT(id)."

Sokáig én is azt hittem, de nem.

Sőt, MyISAM motor esetén kifejezetten nem, mert a rekordok számát folyamatosan tárolja a motor, és azonnal vissza tudja adni, a count(id)-t meg számolni kell.

2019. febr. 24. 20:01
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!