mmofacts.com

Wird das schneller?

gepostet vor 19 Jahre von Kariya
Wenn ich sowas wie des hier hab...

...

$query="DELETE FROM ga_galanews WHERE created<".(time_shifted()-136800);
mysql_query($query);
$query="SELECT ga_galanews.ID,ga_galanews.AUTHOR_ID,ga_galanews.headline,";
$query.="ga_accounts.coords1,ga_accounts.coords2 ";
$query.="FROM ga_galanews LEFT JOIN ga_accounts ON ";
$query.="ga_galanews.AUTHOR_ID=ga_accounts.ID ";
$query.="WHERE created<".(time_shifted()-7200)." ";
$query.="ORDER BY created DESC";
$res=mysql_query($query);
while($data=mysql_fetch_assoc($res))
{
...

Hilft es da performancetechnisch was, wenn ich das DELETE und das SELECT auf einmal, also mit mysql_query("DELETE...; SELECT..."); an die DB sende? Es verringert ja die Queryzahl. Andererseits muß MySQL ja noch genauso viele Befehle ausführen wie vorher... :roll:
gepostet vor 19 Jahre von TheUndeadable
Probier es aus....
gepostet vor 19 Jahre von Kampfhoernchen
Es dürfte schon schneller sein, aber so gering, dass es nicht spürbar ist.

PS. Ich empfehle den Einsatz einer Datenbankklasse. Ist programmiertechnisch schöner als die direkten mysql_*-Funktionen von PHP.
gepostet vor 19 Jahre von Klaus
MySQL muss ja noch das gleiche Datenvolumen bearbeiten, besonders das Joinen fällt da ins Gewicht.
gepostet vor 19 Jahre von Chojin
Ich bin neugierig, was macht den die funktion "time_shifted()"?

reg4rds
chojin
gepostet vor 19 Jahre von BLUESCREEN
Original von Kariya
mysql_query("DELETE...; SELECT...");

AFAIK unterstützt mysql_query() die Ausführung von mehr als einem Query pro Aufruf nicht. Hab ich irgendwann mal ausprobiert...
gepostet vor 19 Jahre von HSINC
da muss man wenn dann schon mysqli_multi_query() nehmen ^^
gepostet vor 19 Jahre von Krisch
Zum Thema:
Ich würde Querys die keinen direkten Zusammenhang haben, also keine Transaktionen sind, nicht vermischen. Und die Performance würde dadurch wohl sowieso nicht viel besser.

Auf diese Diskussion antworten