Definition
PostgreSQL (ou Postgres) est le systeme de gestion de base de donnees relationnelle open source le plus avance au monde. Developpe depuis 1986 (plus de 35 ans), il est reconnu pour sa fiabilite, sa conformite SQL, son extensibilite et ses fonctionnalites avancees.
PostgreSQL est le choix par defaut de la majorite des startups et des entreprises tech modernes.
Fonctionnalites cles
Types de donnees riches
- Types SQL standards (INTEGER, VARCHAR, TIMESTAMP, etc.)
- JSONB : JSON binaire indexable (NoSQL dans SQL)
- Arrays : tableaux natifs
- UUID : identifiants universels
- tsvector : full-text search integre
- PostGIS : donnees geospatiales
- pgvector : vecteurs pour l'IA/ML (recherche semantique)
Requetes avancees
-- CTE (Common Table Expressions)
WITH top_customers AS (
SELECT user_id, SUM(amount) as total
FROM orders
GROUP BY user_id
HAVING SUM(amount) > 1000
)
SELECT u.name, tc.total
FROM users u
JOIN top_customers tc ON u.id = tc.user_id;
-- Window functions
SELECT name, salary, department,
RANK() OVER (PARTITION BY department ORDER BY salary DESC) as rank,
AVG(salary) OVER (PARTITION BY department) as dept_avg
FROM employees;
-- JSONB queries
SELECT * FROM products
WHERE metadata->>'category' = 'electronics'
AND (metadata->>'price')::int < 500;
Full-text search
-- Index GIN pour la recherche
CREATE INDEX idx_search ON articles USING GIN (to_tsvector('french', title || ' ' || body));
-- Recherche en francais
SELECT title, ts_rank(to_tsvector('french', body), query) as rank
FROM articles, to_tsquery('french', 'developpeur & python') query
WHERE to_tsvector('french', body) @@ query
ORDER BY rank DESC;
Extensions
| Extension |
Usage |
| PostGIS |
Donnees geospatiales |
| pgvector |
Recherche semantique (embeddings IA) |
| pg_trgm |
Recherche fuzzy, typo-tolerant |
| pg_stat_statements |
Analyse de performance des requetes |
| TimescaleDB |
Time series data |
PostgreSQL vs MySQL
|
PostgreSQL |
MySQL |
| Conformite SQL |
Excellente |
Bonne |
| JSONB |
Natif, indexable |
JSON (moins performant) |
| Full-text search |
Integre, multi-langue |
Integre, basique |
| Extensions |
PostGIS, pgvector, etc. |
Limitees |
| Replication |
Logique + physique |
Binlog |
| Communaute |
Tres active |
Tres active |
Hebergement
| Service |
Type |
A partir de |
| Supabase |
Managed + API |
Gratuit (500 Mo) |
| Neon |
Serverless |
Gratuit (512 Mo) |
| Railway |
Managed |
5$/mois |
| AWS RDS |
Managed |
~15$/mois |
| Self-hosted |
VPS |
Cout du VPS |