Criar um Índice de Coluna Única
Nesta etapa, você criará uma tabela de exemplo chamada users e, em seguida, criará um índice de coluna única na coluna email. Índices são cruciais para melhorar o desempenho de consultas de banco de dados, especialmente ao lidar com tabelas grandes.
Primeiro, conecte-se ao banco de dados PostgreSQL como o usuário postgres:
sudo -u postgres psql
Agora, crie a tabela users. Execute o seguinte comando SQL:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100),
created_at TIMESTAMP
);
Este comando cria uma tabela chamada users com colunas para id, username, email e created_at. A coluna id é a chave primária e incrementa automaticamente.
Em seguida, insira alguns dados de exemplo na tabela users. Execute os seguintes 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());
-- 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();
Você inseriu mais de 1000 linhas de dados na tabela users. Este conjunto de dados maior ajudará a demonstrar o uso de índices de forma mais eficaz, pois o PostgreSQL geralmente usa índices quando eles proporcionam um benefício de desempenho em comparação com a varredura da tabela inteira.
Para acelerar consultas baseadas na coluna email, crie um índice na coluna email. Execute o seguinte comando SQL:
CREATE INDEX idx_users_email ON users (email);
Este comando cria um índice chamado idx_users_email na coluna email da tabela users.
Para verificar se o índice foi criado, você pode usar o comando \di no psql. Execute o seguinte comando:
\di
Você deverá ver o índice idx_users_email listado na saída.
Finalmente, saia do shell psql digitando:
\q