Je vais faire un test de performance entre table de partition et table de partition.
Voici deux tables contenant à la fois 200 millions de données.
PS Veuillez visiter le lien://base de données/partition-table-dans-postgresql-create-partition-part-1/[Table de partition dans PostgreSQL (Créer une partition) - Partie 1]Si vous ne savez pas comment créer une partition de table dans PostgreSQL et visitez le lien://base de données/partition-table-dans-postgresql-simuler-millions-data-partie-2/[Table de partition dans PostgreSQL (Simulate Millions Data) - Partie 2]pour simuler des millions de données afin de la tester.
Test de performance à la date spécifiée
--partition table SELECT ** FROM hashvalue__PT WHERE hashtime = DATE '2008-08-01' --non partition table SELECT ** FROM hashvalue WHERE hashtime = DATE '2008-08-01'
Voici le résultat du test de performance de 1 million à 200 millions de données.
Cliquez sur l’image pour agrandir le résultat.
-
Lorsque les deux contiennent 200 millions de données, recherchez la date spécifiée, la table de partition est plus rapide que la table sans partition d’environ 144,45% **
Recherche à la date spécifiée «2008-08-01» Enregistrements récupérés = 741825 Table de partition = 359,61 secondes Table non partitionnée = 879,062 secondes
Test de performance à la date limite le même mois
--partition table SELECT ** FROM hashvalue__PT WHERE hashtime> = DATE '2008-05-01' AND hashtime <= '2008-05-15'; --non partition table SELECT ** FROM hashvalue WHERE hashtime >= DATE '2008-05-01' AND hashtime <= '2008-05-15';
Voici le résultat du test de performance de 1 million à 200 millions de données.
Cliquez sur l’image pour agrandir le résultat.
-
Lorsque les deux contiennent 200 millions de données, recherchez une date d’intervalle le même mois, la table de partition est plus rapide que la table sans partition d’environ 209,84% **
Recherche sur la date du meme mois du 2008-05-01 au 2008-05-15; + Enregistrements récupérés = 11112338 + Table de partition = 603.328 secondes + Table sans partition = 1869.375 secondes
Test de performance à la date de fin de mois
--partition table SELECT ** FROM hashvalue__PT WHERE hashtime> = DATE '2008-06-20' AND hashtime <= '2008-07-10'; --non partition table SELECT ** FROM hashvalue WHERE hashtime >= DATE '2008-06-20' AND hashtime <= '2008-07-10';
Voici le résultat du test de performance de 1 million à 200 millions de données.
Cliquez sur l’image pour agrandir le résultat.
-
Lorsque les deux contiennent 200 millions de données, recherchez la date de l’intervalle et le mois, la table de partition est plus rapide que la table sans partition d’environ 39,97% **
Effectuez une recherche sur la date de l’intervalle et sur le mois, du «2008-06-20» au «2008-07-10»; + Enregistrements récupérés = 12220658 + table de partition = 1310,766 secondes + table sans partition = 1834,743 secondes
Conclusion
Après quelques tests de performance entre partition et table non-partition, le résultat est évidemment, la table de partition est totalement gagnante dans ce test de performance.
lien://tag/performance/[performance]lien://tag/postgresql/[postgresql]