J'aimerais optimiser mes requêtes, je regarde mysql-slow.log
.
La plupart de mes requêtes lentes contient ORDER BY RAND()
. Je ne peux pas trouver une vraie solution pour résoudre ce problème. Theres est une solution possible à MySQLPerformanceBlog mais je ne pense pas que cela soit suffisant. Sur mal optimisé (ou fréquemment mis à jour, l'utilisateur géré) tables il ne fonctionne pas ou j'ai besoin d'exécuter deux ou plusieurs requêtes avant que je puisse choisir mon PHP
-aléatoires générés ligne.
Est-il une solution pour ce problème?
Merci!
Un mannequin exemple:
SELECT accomodation.ac_id,
accomodation.ac_status,
accomodation.ac_name,
accomodation.ac_status,
accomodation.ac_images
FROM accomodation, accomodation_category
WHERE accomodation.ac_status != 'draft'
AND accomodation.ac_category = accomodation_category.acat_id
AND accomodation_category.acat_slug != 'vendeglatohely'
AND ac_images != 'b:0;'
ORDER BY
RAND()
LIMIT 1