Lorsque vous exécutez cette requête sur mon serveur, c'est très lent et je ne comprends pas pourquoi. Quelqu'un peut-il m'aider à comprendre? expliquer analysez: p>
Query:
3 Réponses :
Il est difficile de dire ce que vous manquez exactement, mais si j'étais vous, je vous assurerais que l'index suivant existe: pour t_purs code>, Créez cet index: P> CREATE INDEX t_purs_created_p_id_idx
ON t_purs (created, p_id);
Hé, j'ai fait des changements dans les index et c'est maintenant une vitesse comme la lumière! Merci!!
Content de l'entendre. Ne sous-estimez pas la puissance des index composés! :)
envisagez d'utiliser une colonne unique forte> dans votre table: au lieu de année em>, mois em>, week em> / em> et jour em> peut facilement et rapidement être extrait d'une date avec plus important pour la performance est l'index, qui serait alors simplement: p> ou, en fonction de la distribution des données: p> La séquence de colonne compte. Vous pouvez même créer les deux. P> P> (t_year, t_month, t_week, t_day) code>. Le type de données date code> occupe 4 octets. Cela rétrécirait un peu votre table, rendrait l'index plus petit et plus rapide et regroupant beaucoup plus facilement. P> extrait () code> . Votre requête pourrait alors ressembler à ceci et serait plus rapide: p>
Votre requête est une analyse séquentielle sur exécuté expliquer analyser em> après avoir exécuté les deux requêtes ci-dessus. Vous verrez que le temps de plan et l'heure d'exécution seront réduits. P> p> t_purs code > et t_dat code>. La création des index appropriés vous aidera à rendre cette requête plus rapidement et à éviter les analyses séquentielles. P>
Combien d'enregistrements y a-t-il dans ces tables? L'indexation est-elle faite?
t_purs environ 600K enregistrements, T_DAT environ 9K. Les index sont définis dans t_purs.id, t_dat.t_key
Vous devez nous montrer les définitions de table et d'index. b> Diagnostiquer les requêtes lentes nécessite des définitions de table et d'index complètes, pas seulement une description ou une paraphrase. Peut-être que vos tables sont mal définies. Peut-être que les index ne sont pas créés correctement. Peut-être que vous n'avez pas d'index sur cette colonne que vous pensiez avoir fait. Sans voir la table et les définitions d'index, nous ne pouvons pas le dire.
En outre, il est tout à fait inutile de mettre votre nom de "colonne" et de "table" de guillemets.