sql >> Databáze >  >> RDS >> Mysql

"aktivní" příznak nebo ne?

Rozdělíte tabulku na aktivní příznak, takže aktivní záznamy jsou v jednom oddílu a neaktivní záznamy jsou v druhém oddílu. Poté vytvoříte aktivní pohled pro každou tabulku, která automaticky obsahuje aktivní filtr. Databázový dotazovací stroj automaticky omezí dotaz na oddíl, který obsahuje aktivní záznamy, což je mnohem rychlejší než dokonce použití indexu s tímto příznakem.

Zde je příklad, jak vytvořit dělenou tabulku v Oracle. Oracle nemá booleovské typy sloupců, takže jsem upravil strukturu vaší tabulky pro účely 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)
);

Pokud byste chtěli, mohli byste umístit každý oddíl do jiných tabulkových prostorů. Můžete také rozdělit své indexy.

Mimochodem, toto se zdá opakování toto Otázka, jako nováček se musím zeptat, jaký je postup při řešení nezamýšlených duplikátů?

Upravit: Jak bylo požadováno v komentářích, poskytnut příklad pro vytvoření rozdělené tabulky v Oracle



  1. SQL-alchymie:ValueError příliš mnoho hodnot k rozbalení?

  2. SET NULL:Zadejte řetězec, který se má vrátit, kdykoli se v SQLcl / SQL*Plus objeví hodnota Null

  3. DNA vs moderní metody zálohování:Budoucnost ukládání dat

  4. SQL Server:Úniky úrovně izolace mezi sdruženými připojeními