tout d'abord s'il existe déjà une discussion à ce sujet ou si je ne poste pas dans le lieu approprié veuillez ne pas me lapider mais me passer le martinet, je me flagellerais moi-même.
Avant d'aller plus loin il peut s'avérer intéressant de savoir que le seul système de base de données que je côtoie et MySQL et que même en ce qui le concerne je suis très loin d'être un spécialiste.
Ces barrières étant mises rentrons maintenant dans le vif du sujet qui m'amène.
Dans la table phpbb3_posts existe parmi d'autres deux clefs de type INDEX qui me perturbent : topic_id sur le champ topic_id et tid_post_time sur les deux champs topic_id et post_time, dans cet ordre.
Cette dernière clef serait utilisée par MySQL pour les requêtes ne conditionnant que topic_id comme par exemple
- Code: Tout sélectionner
SELECT *
FROM phpbb_posts
WHERE topic_id = 12
ainsi que pour les requêtes avec une condition sur topic_id puis post_time comme par exemple
- Code: Tout sélectionner
SELECT *
FROM phpbb3_posts
WHERE topic_id = 12
AND post_time = 1152113303
La clef topic_id m'apparaît donc inutile à moins de mettre le champ post_time avant le champ topic_id dans la clef tid_post_time afin d'avoir un index utile lors d'une requête conditionnée par le post_time seul.
Dans le même ordre d'idée, sur la table phpbb3_topics pourquoi ne pas changer l'ordre des champs dans les clefs contenant forum_id pour ne pas avoir plusieurs index sur ce dernier ?
Peut-être existe-t-il des très bonnes raisons, je n'en doute pas, mais dans ce cas ça m'intéresse de les connaître.

