Refaire cette requete plus rapidement (mysql)
Posté : 23 mai 2008, 02:06
Bonjour j'ai dans une page index plusieurs include, hors un de c'est include comporte des requetes dans ma base de donnée et cela fait que ma page s'affiche apres 5 secondes ce qui est enorme.
Le bout en question est dans une boucle foreach
Pour chaque enregistrement je verifie si l'info est dans la base sinon je l'ajoute si l'info est la je la met a jour.
Pour l'instant ma base contient 100 000 enregistrement mais vous pouvez compter 10 000 de plus chaque jour.
Donc avez vous une suggestion pour amélioré grandement ce code ?
Pui-je faire en sorte d'afficher ma page et ensuite entrer les info dans la base de donnée ?
Merci d'avance
Le bout en question est dans une boucle foreach
$con = mysql_connect('localhost','Video','video');
$UpdateSql = "UPDATE Video SET `VideoId` = '$id', `Title` = '$title', `VideoUrl` = '$rurl', `Channel` = '$type', `ChannelUrl` = '$typeurl', `DateFound` = '$datefound', `Description` = '$description', `Actor` = '$actor', `Director` = '$director', `Writer` = '$writer', `Producer` = '$producer', `Artist` = '$artist', `Album` = '$album', `Author` = '$author', `Rating` = '$rating', `Runtime` = '$runtime', `Category` = '$category', `Tags` = '$tags', `ShowName` = '$showname', `ShowUrl` ='$showurl', `EpisodeName` = '$episodename', `EpisodeNumber` = '$episodenumber, `SeasonNumber` = '$seasonnumber, `Country` = '$country', `Language` = '$language', `DateProduced` = '$dateproduced', `ViewCount` = '$viewcount', `UserRating` = '$userrating', `UserRatingCount` = '$userratingcount', `VideoEmbed` = '$link', `Quality` = '$quality', `Filesize` = '$size', `Adult` = '$adult' WHERE `Channel` = '$type' AND `Title`= '$title' ";
$InsertSql = "INSERT INTO `Video` (`Id`, `VideoId`, `Title`, `VideoUrl`, `Channel`, `ChannelUrl`, `DateFound`, `Description`, `Actor`, `Director`, `Writer`, `Producer`, `Artist`, `Album`, `Author`, `Rating`, `Runtime`, `Category`, `Tags`, `ShowName`, `ShowUrl`, `EpisodeName`, `EpisodeNumber`, `SeasonNumber`, `Country`, `Language`, `DateProduced`, `ViewCount`, `UserRating`, `UserRatingCount`, `VideoEmbed`, `Quality`, `Filesize`, `Adult`) VALUES (NULL, '$id', '$title', '$rurl', '$type', '$typeurl', '$datefound', '$description2', '$actor', '$director', '$writer', '$producer', '$artist', '$album', '$author', '$rating', '$runtime', '$category', '$tags', '$showname', '$showurl', '$episodename', '$episodenumber', '$seasonnumber', '$country', '$language', '$dateproduced', '$view', '$userrating', '$userratingcount', '$link', '$quality', '$size', '$adult');";
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("Video", $con);
$query = "SELECT Id FROM Video WHERE title='$title' AND channel= '$type'";
$result = mysql_query($query);
if (!mysql_fetch_row($result)) {
//noting so we need to add it
mysql_query($InsertSql);
$InsertId = mysql_insert_id();
}
else
{
mysql_query($UpdateSql);
$result = mysql_query($query);
$row = mysql_fetch_row($result);
$InsertId = $row[0];
}
mysql_close($con);
Pour chaque enregistrement je verifie si l'info est dans la base sinon je l'ajoute si l'info est la je la met a jour.
Pour l'instant ma base contient 100 000 enregistrement mais vous pouvez compter 10 000 de plus chaque jour.
Donc avez vous une suggestion pour amélioré grandement ce code ?
Pui-je faire en sorte d'afficher ma page et ensuite entrer les info dans la base de donnée ?
Merci d'avance