Améliorer les performances des requêtes dans PostgreSQL
Amy McCarty
Instructor
Requête

Plan d'exécution de requête



Qu'est-ce qu'une jointure ?
Qu'est-ce qu'une jointure ?
Pourquoi les utiliser ?
Comment ?
| ID vente | Dt commande | Montant | N° client |
|---|---|---|---|
| 01 | 2019-02-02 | 145.30 | 911 |
| ID | Nom | Client depuis |
|---|---|---|
| 911 | Jim Smith | 2019-01-01 |
| ID vente | Dt commande | Montant | Nom |
|---|---|---|---|
| 01 | 2019-02-02 | 145.30 | Jim Smith |

SELECT *
FROM athletes a
INNER JOIN countries c
ON a.country = c.country
| Athlète | Pays | Pays1 | Nom | Pop (millions) |
|---|---|---|---|---|
| Jack | AUT | AUT | Autriche | 9 |
| Aditya | IND | IND | Inde | 1 339 |
| Mikhail | RUS | RUS | Russie | 145 |

SELECT *
FROM athletes a
INNER JOIN countries c
ON a.country = c.country
| Athlète | Pays | Pays1 | Nom | Pop (millions) |
|---|---|---|---|---|
| Jack | AUT | AUT | Autriche | 9 |
| Aditya | IND | IND | Inde | 1 339 |
| Mikhail | RUS | RUS | Russie | 145 |

SELECT *
FROM athletes
INNER JOIN countries
USING (country)
| Athlète | Pays | Nom | Pop (millions) |
|---|---|---|---|
| Jack | AUT | Autriche | 9 |
| Aditya | IND | Inde | 1 339 |
| Mikhail | RUS | Russie | 145 |

SELECT *
FROM athletes
INNER JOIN countries
USING (country)
| Athlète | Pays | Nom | Pop (millions) |
|---|---|---|---|
| Jack | AUT | Autriche | 9 |
| Aditya | IND | Inde | 1 339 |
| Mikhail | RUS | Russie | 145 |

SELECT *
FROM athletes a
LEFT JOIN countries c
ON a.country = c.country
| Athlète | Pays | Pays1 | Nom | Pop (millions) | |
|---|---|---|---|---|---|
| Jack | AUT | AUT | Autriche | 9 | |
| Aditya | IND | IND | Inde | 1 339 | |
| Mikhail | RUS | RUS | Russie | 145 | |
| Javier | MEX |

SELECT *
FROM athletes a
LEFT JOIN countries c
ON a.country = c.country
| Athlète | Pays | Pays1 | Nom | Pop (millions) |
|---|---|---|---|---|
| Jack | AUT | AUT | Autriche | 9 |
| Aditya | IND | IND | Inde | 1 339 |
| Mikhail | RUS | RUS | Russie | 145 |
| Javier | MEX |

SELECT *
FROM athletes a
RIGHT JOIN countries c
ON a.country = c.country
| Athlète | Pays | Pays1 | Nom | Pop (millions) |
|---|---|---|---|---|
| Jack | AUT | AUT | Autriche | 9 |
| Aditya | IND | IND | Inde | 1 339 |
| Mikhail | RUS | RUS | Russie | 145 |
| BRA | Brésil | 209 |

SELECT *
FROM athletes a
RIGHT JOIN countries c
ON a.country = c.country
| Athlète | Pays | Pays1 | Nom | Pop (millions) |
|---|---|---|---|---|
| Jack | AUT | AUT | Autriche | 9 |
| Aditya | IND | IND | Inde | 1 339 |
| Mikhail | RUS | RUS | Russie | 145 |
| BRA | Brésil | 209 |
SELECT *
FROM athletes a
FULL OUTER JOIN countries c
ON a.country = c.country

| Nom athlète | Pays | Pays1 | Nom | Pop (millions) |
|---|---|---|---|---|
| Jack | AUT | AUT | Autriche | 9 |
| Aditya | IND | IND | Inde | 1 339 |
| Mikhail | RUS | RUS | Russie | 145 |
| Javier | MEX | |||
| BRA | Brésil | 209 |
Améliorer les performances des requêtes dans PostgreSQL