Ik zit met een performance probleempje bij 1 van m'n script, dit script word aardig veel aangeroepen en haalt oa. 1 record uit een tabel met zo'n 150 kolommen. Het script heeft alle waarden in alle kolommen nodig, dus ik doe zoiets als:
select * from tabel where id=1
$waarden1=$row;
Maar zou het volgende sneller zijn?
Ik verklein de tabel tot 2 kolommen. En stop in de eerste kolom de 75 kolommen uit de oude tabel gescheiden door een pipe | teken. Voor de tweede kolom doe ik hetzelfde. Vervolgens haal ik m'n data op:
select kolom1, kolom2 from tabel where id=1
$waarden1=explode("|", $row["kolom1"]);
$waarden2=explode("|", $row["kolom2"]);
De waarden in de kolommen zijn alleen strings (vaak korte strings van maximaal 25 chars).
select * from tabel where id=1
$waarden1=$row;
Maar zou het volgende sneller zijn?
Ik verklein de tabel tot 2 kolommen. En stop in de eerste kolom de 75 kolommen uit de oude tabel gescheiden door een pipe | teken. Voor de tweede kolom doe ik hetzelfde. Vervolgens haal ik m'n data op:
select kolom1, kolom2 from tabel where id=1
$waarden1=explode("|", $row["kolom1"]);
$waarden2=explode("|", $row["kolom2"]);
De waarden in de kolommen zijn alleen strings (vaak korte strings van maximaal 25 chars).