Créer un index à colonne unique
Dans cette étape, vous allez créer une table d'exemple nommée users, puis créer un index sur une seule colonne, la colonne email. Les index sont cruciaux pour améliorer les performances des requêtes de base de données, surtout lorsqu'il s'agit de grandes tables.
Connectez-vous d'abord à la base de données PostgreSQL en tant qu'utilisateur postgres :
sudo -u postgres psql
Maintenant, créez la table users. Exécutez la commande SQL suivante :
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100),
created_at TIMESTAMP
);
Cette commande crée une table nommée users avec des colonnes pour id, username, email et created_at. La colonne id est la clé primaire et s'incrémente automatiquement.
Ensuite, insérez des données d'exemple dans la table users. Exécutez les commandes SQL suivantes :
INSERT INTO users (username, email, created_at) VALUES
('john_doe', 'john.doe@example.com', NOW()),
('jane_smith', 'jane.smith@example.com', NOW()),
('peter_jones', 'peter.jones@example.com', NOW()),
('mary_brown', 'mary.brown@example.com', NOW()),
('alice_wilson', 'alice.wilson@example.com', NOW()),
('bob_davis', 'bob.davis@example.com', NOW()),
('carol_garcia', 'carol.garcia@example.com', NOW()),
('david_martinez', 'david.martinez@example.com', NOW()),
('emma_anderson', 'emma.anderson@example.com', NOW()),
('frank_taylor', 'frank.taylor@example.com', NOW());
-- Insert additional rows to make the table large enough for index usage
INSERT INTO users (username, email, created_at)
SELECT
'user_' || generate_series(1, 1000),
'user' || generate_series(1, 1000) || '@example.com',
NOW();
Vous avez maintenant inséré plus de 1000 lignes de données dans la table users. Cet ensemble de données plus important aidera à démontrer plus efficacement l'utilisation des index, car PostgreSQL utilise généralement les index lorsqu'ils offrent un avantage de performance par rapport à l'analyse de la table entière.
Pour accélérer les requêtes basées sur la colonne email, créez un index sur la colonne email. Exécutez la commande SQL suivante :
CREATE INDEX idx_users_email ON users (email);
Cette commande crée un index nommé idx_users_email sur la colonne email de la table users.
Pour vérifier que l'index a été créé, vous pouvez utiliser la commande \di dans psql. Exécutez la commande suivante :
\di
Vous devriez voir l'index idx_users_email listé dans la sortie.
Enfin, quittez le shell psql en tapant :
\q