Crear un Índice de Columna Única
En este paso, creará una tabla de ejemplo llamada users y luego creará un índice de columna única en la columna email. Los índices son cruciales para mejorar el rendimiento de las consultas a la base de datos, especialmente cuando se trabaja con tablas grandes.
Primero, conéctese a la base de datos PostgreSQL como el usuario postgres:
sudo -u postgres psql
Ahora, cree la tabla users. Ejecute el siguiente comando SQL:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100),
created_at TIMESTAMP
);
Este comando crea una tabla llamada users con columnas para id, username, email y created_at. La columna id es la clave primaria y se incrementa automáticamente.
A continuación, inserte algunos datos de ejemplo en la tabla users. Ejecute los siguientes comandos SQL:
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());
-- Insertar filas adicionales para que la tabla sea lo suficientemente grande para el uso del índice
INSERT INTO users (username, email, created_at)
SELECT
'user_' || generate_series(1, 1000),
'user' || generate_series(1, 1000) || '@example.com',
NOW();
Ahora ha insertado más de 1000 filas de datos en la tabla users. Este conjunto de datos más grande ayudará a demostrar el uso de índices de manera más efectiva, ya que PostgreSQL generalmente utiliza índices cuando proporcionan un beneficio de rendimiento sobre el escaneo de toda la tabla.
Para acelerar las consultas basadas en la columna email, cree un índice en la columna email. Ejecute el siguiente comando SQL:
CREATE INDEX idx_users_email ON users (email);
Este comando crea un índice llamado idx_users_email en la columna email de la tabla users.
Para verificar que el índice se ha creado, puede usar el comando \di en psql. Ejecute el siguiente comando:
\di
Debería ver el índice idx_users_email listado en la salida.
Finalmente, salga del shell de psql escribiendo:
\q