Mysql
 sql >> Base de données >  >> RDS >> Mysql

drapeau "actif" ou pas ?

Vous partitionnez la table sur l'indicateur actif, de sorte que les enregistrements actifs se trouvent dans une partition et les enregistrements inactifs dans l'autre partition. Ensuite, vous créez une vue active pour chaque table qui contient automatiquement le filtre actif. Le moteur de requête de base de données limite automatiquement la requête à la partition qui contient les enregistrements actifs, ce qui est beaucoup plus rapide que même d'utiliser un index sur cet indicateur.

Voici un exemple de création d'une table partitionnée dans Oracle. Oracle n'a pas de types de colonnes booléennes, j'ai donc modifié la structure de votre table pour les besoins d'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)
);

Si vous le souhaitez, vous pouvez placer chaque partition dans différents espaces de table. Vous pouvez également partitionner vos index.

Incidemment, cela semble être une répétition de ceci question, en tant que débutant, je dois demander, quelle est la procédure à suivre pour traiter les doublons involontaires ?

Modifier : Comme demandé dans les commentaires, fourni un exemple de création d'une table partitionnée dans Oracle