problème performance, order by random()
Bonjour à tous,
Je suis en train de faire une requête qui retourne les 5 premiers résultat dans un ordre aléatoire. L'idée c'est d'afficher 5 images sur un site …
Lorsque je fais ma requête j’interroge toute la base de donnée et c'est assez lent…
Quelqu'un saurait-il comment faire un fichier xml avec les IDS des documents, ensuite on en intérroge 5 au hasard?
Je pensais à un fichier qu'on mettrait à jour tout les x temps.
Si quelqu'un à une idée c'est avec plaisir.
Merci beaucoup
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
<queryAds>
{
subsequence(
let $myCollection := collection($config:dataBaseLocation)
for $voiture at $pos in $myCollection/Ad
(: si il y pas de balise image on fait une balise Image empty selon la convention :)
let $imgUrl := if($voiture/Image)then ($voiture/Image[1]) else <Image>empty</Image>
order by util:random()
return
<cars>
<mark>{data($voiture//Make)}</mark>
<model>{data($voiture//Model)}</model>
<name>{($voiture//Contact/LastName)}</name>
<url>{functions:get_img($imgUrl)}</url>
</cars>
,1,6)
}
</queryAds> |