Mysql
 sql >> база данни >  >> RDS >> Mysql

`активен' флаг или не?

Разделяте таблицата на активния флаг, така че активните записи са в единия дял, а неактивните записи са в другия дял. След това създавате активен изглед за всяка таблица, която автоматично има активен филтър върху нея. Машината за заявки към базата данни автоматично ограничава заявката до дяла, който има активните записи в него, което е много по-бързо, отколкото дори използването на индекс на този флаг.

Ето пример за това как да създадете разделена таблица в Oracle. Oracle няма булеви типове колони, така че промених структурата на вашата таблица за целите на 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)
);

Ако желаете, можете да поставите всеки дял в различни пространства за таблици. Можете също да разделите вашите индекси.

Между другото, това изглежда като повторение на това въпрос, като начинаещ трябва да попитам каква е процедурата за справяне с непредвидени дубликати?

Редактиране: Както беше поискано в коментарите, предоставих пример за създаване на разделена таблица в 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. Как да добавя коментари към таблица или колона в mysql с помощта на SQLAlchemy?

  2. изтрийте мястото, където идентификаторът е най-голям

  3. Отключване на таблици, ако нишката е загубена

  4. MySQL LOAD DATA INFILE със запетая като десетичен разделител

  5. Как да вмъкна изображение в mysql база данни (таблица)?