Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Performance MySql et plugin Pagination

Posted by webseb on 03/09/2009 00:53

Bonsoir,

Avec le plugin de pagination, je fais une requête dans le style :

SELECT auteur, message FROM maTable WHERE status = 2 ORDER BY
id_message desc LIMIT $debut, $nb_messages;

Tout va bien si le nombre de messages n'est pas énorme mais pour une table conséquente. 'LIMIT' c'est pas top, mon serveur risque d'être à la ramasse ?

Donc je pensais utilisée ceci : Mais ça ne fonctionne pas si on supprime des messages dans la table (trou entre les id autoincrementé)

SELECT * FROM maTable WHERE monCHamp => $debut AND monCHamp <= $nb_messages;
SELECT * FROM maTable WHERE monCHamp BETWEEN xxxx AND xxxx;
SELECT * FROM maTable WHERE monCHamp IN(SELECT id FROM maTable WHERE monCHamp BETWEEN xxxx AND xxxx);
SELECT * FROM maTable WHERE monCHamp IN(SELECT id FROM maTable WHERE monCHamp => xxxx AND monChamp <= xxxx);

Puis je suis tombé sur ce code (valable que pour Mysql, sans l'adapter)


SET @nb_messages= 0;
SELECT auteur, message, @nb_messages := @nb_messages + 1
FROM maTable WHERE id_message >= $debut AND @nb_messages < $nb_messages
ORDER BY id_message DESC

Des idées, conseils. Merci

  [Opened] Re: Performance MySql et plugin Pagination

Reply #1 Posted by foxmask on 03/09/2009 08:33

Bonjour,

moultes sites de forum utilisent LIMIT sans que cela pose de problemes par exemple freenews.fr avec 700.000 msg et pres de 50.000 threads. qu'est-ce qu'il vous fait dire que c'est "pas top" ?

cdt.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Re: Performance MySql et plugin Pagination

Reply #2 Posted by laurentj on 03/09/2009 10:16

@webseb :

Donc je pensais utilisée ceci (..)

Et tu crois que remplacer 1 select (somme toute particulièrement performant), par 4 requetes, ça va aller plus vite ? :-)

Puis je suis tombé sur ce code

J'ai du raté quelque chose, ou tu as du omettre quelque chose, parce que je ne vois pas en quoi cette requête est équivalente à l'originale.

@manoo : mouai, bof, surtout dans le cas de webseb, qui n'a pas de jointure...

Sinon, tu peux t'inspirer de l'implémentation de la représentation intervallaire de données en arborescence : http://brouardf.club.fr/SQL/Tree/SQL_tree.html (puisqu'apparement il s'agit de messages ;-) ). foxmask : c'est valable aussi pour ton cas ;-)

 
Page
  1. Performance MySql et plugin Pagination