Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

sinalizador 'ativo' ou não?


Você particiona a tabela no sinalizador ativo, para que os registros ativos fiquem em uma partição e os registros inativos na outra partição. Em seguida, você cria uma exibição ativa para cada tabela que possui automaticamente o filtro ativo. O mecanismo de consulta do banco de dados restringe automaticamente a consulta à partição que contém os registros ativos, o que é muito mais rápido do que usar um índice nesse sinalizador.

Aqui está um exemplo de como criar uma tabela particionada no Oracle. O Oracle não tem tipos de colunas booleanas, então modifiquei sua estrutura de tabela para fins do Oracle.
CREATE TABLE people
(
   id       NUMBER(10),
   name     VARCHAR2(100),
   active   NUMBER(1)
)
PARTITION BY LIST(active)
(
   PARTITION active_records VALUES (0)
   PARTITION inactive_records VALUES (1)
);

Se você quisesse, poderia colocar cada partição em diferentes tablespaces. Você também pode particionar seus índices.

Aliás, isso parece uma repetição de isso pergunta, como um novato eu preciso perguntar, qual é o procedimento para lidar com duplicatas não intencionais?

Editar: Conforme solicitado nos comentários, forneceu um exemplo para criar uma tabela particionada no Oracle