Mysql
 sql >> Baza danych >  >> RDS >> Mysql

flaga „aktywna” czy nie?

Partycjonujesz tabelę z flagą active, tak aby aktywne rekordy znajdowały się w jednej partycji, a nieaktywne w drugiej. Następnie tworzysz aktywny widok dla każdej tabeli, która automatycznie ma na sobie aktywny filtr. Silnik zapytań bazy danych automatycznie ogranicza zapytanie do partycji zawierającej aktywne rekordy, co jest znacznie szybsze niż użycie indeksu z tą flagą.

Oto przykład tworzenia tabeli partycjonowanej w Oracle. Oracle nie ma typów kolumn logicznych, więc zmodyfikowałem strukturę tabeli na potrzeby 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)
);

Jeśli chcesz, możesz umieścić każdą partycję w różnych przestrzeniach tabel. Możesz także podzielić swoje indeksy na partycje.

Nawiasem mówiąc, wydaje się, że jest to powtórka to pytanie, jako nowicjusz muszę zapytać, jaka jest procedura postępowania z niezamierzonymi duplikatami?

Edytuj: Zgodnie z prośbą w komentarzach podano przykład tworzenia tabeli partycjonowanej w Oracle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pole inkrementacyjne bazy danych mysql przy użyciu składni aktywnego rekordu codeigniter

  2. Porównanie czasów przełączania awaryjnego serwera proxy bazy danych — ProxySQL, MaxScale i HAProxy

  3. Tabela Schrödingers MySQL:istnieje, ale jej nie ma

  4. Błąd? #1146 — Tabela „xxx.xxxxx” nie istnieje

  5. Funkcja SUM() w MySQL