Bonjour à tous,
Après avoir parcouru les nombreux posts de ce forum, et retourné dans tous les sens ma doc MySQL, je m'adresse à vous pour un problème sur lequel je sèche.
J’ai deux serveurs Linux Fedora 2 sur lesquels tourne MySQL version 3.23.58.
Ces deux serveurs sont strictement identique au niveau de la config de Linux, ainsi qu’aux niveaux des paramètres et variables MySQL.
L’un est un serveur de développement, l’autre est un serveur de production.
Sur le serveur de développement, lorsque j’exécute cette requête :
tout se passe correctement. Le nombre de lignes affichées, correspond exactement aux critères de recherche. (cette requête est exécutée via un script php)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT T1.C1, T1.C2, T1.C3, T2.C1, T2.C2, T2.C3, T3.C1, T3.C2, T3.C3, T4.C1, T4.C2, T4.C3 FROM T1 LEFT OUTER JOIN T2 ON T1.C1=T2.C1, T3, T4 WHERE T1.C2 = 'aaa' and T1.C3=T3.C3 and T1.C1=T4.C1 ORDER BY T2.C3 DESC, T1.C3 ASC;
Lorsque j’exécute cette même requête sur le serveur de prod, Mysql (du moins je suppose) n’affiche aucun enregistrements si le résultat dépasse 1912 lignes. Le problème c’est que je n’ai aucun message d’erreur pour me guider vers un quelconque bug !!!
Pour arriver à ce chiffre de 1912 lignes, j’ai testé la requête en ajoutant LIMIT 0, ????
Ce qui veut dire que lorsque la requête est exécutée avec la clause LIMIT 0,1911 les milles neuf cents onze lignes sont affichées. Quand la clause est LIMIT 0,1912 (ou supérieur) aucun enregistrement n’est affiché.
Enfin lorsque j’exécute cette requête directement sur le client mysql, tout les enregistrements sont affiché, quelque soit le nombre de ligne. (problème avec PHP ?????)
Donc pour résumer sur deux serveurs identique, une même requête fonctionne correctement sur l’un, mais n’affiche le résultat qu’à partir d’un certains nombre de lignes sur l’autre.
Je reprécise que sur les deux serveurs les variables sont identiques !!!
J’ai d’abord pensé à MAX_JOIN_SIZE, mais la valeur me parait correct (4294967295)
J’ai analysé la requête avec EXPLAIN, et le résultat et identique sur les deux serveurs !!!
Je ne sais plus vraiment vers où chercher, peut être est ce un problème dans mon script php ?? Dans ce cas pourquoi fonctionnerait il sur un serveur et pas sur l’autre ???
D’avance je vous remercie pour votre aide ou vos conseils, qui me seront très précieux !!
Frédéric
Partager