Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: MySQL optimointi

punppis [13.08.2007 12:13:25]

#

En ollut varma joten kysyn teiltä. Eli kun tehdään kysely mysql_query()-funktiolla, niin silloin otetaan yhteys tietokantaan, joka taas rasittaa sitä. Kun taas otetaan selkoa siitä tuloksesta, joka tapahtuu funktiolla mysql_result, niin mysql-palvelimeen ei tarvitse enään koskea, eli ei minkäänlaista vaikutusta mysql-palvelimen suorituskykyyn.

Eli kannattaa varmaan tehdä näin

$kysely = mysql_query("SELECT a, b FROM table");
$tulos = mysql_result($kysely, 0, "a");
$tulos2 = mysql_result($kseyly, 0, "b");

ennemmin kuin

$kysely = mysql_query("SELECT a FROM table");
$tulos = mysql_result($kysely, 0, 0);

$kysely = mysql_query("SELECT b FROM table");
$tulos2 = mysql_result($kysely, 0, 0);

sooda [13.08.2007 12:58:34]

#

Mun käsittääkseni se resultkin kyllä vähän koskee siihen palvelimeen kun kysyy siltä niitä tuloksia mitä haku teki, mut joo, itse haut on raskaita suhteessa muuhun ja ne kannattaa minimoida. Mysql_result on kans vähän kankea (ja vissiin vähän raskaampikin), itse tykkään käyttää mysql_fetch_associa, saa kokonaisen rivin kerralla.

edit: joo, tosiaan tosta raskaudesta:

https://www.php.net/mysql_result:

When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they're MUCH quicker than mysql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.

Mysql_result kun erikseen ettii ensi tietyn rivin ja sit ottaa sieltä vaan yhden arvon.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta