我有一个有 7 列的表。
它将包含大量数据——每月将添加超过 170 万条记录。
在这 7 列中,有 5 列是我将在我的查询的 WHERE 子句中以不同组合对该表使用的列。
可以为这些可能的组合创建不同的索引吗?
我问这个问题是因为如果我这样做,这张表上会有超过 10 个索引,我不确定这是否是个好主意。
另一方面,我害怕在没有索引的情况下查询包含大量数据的表。
这是表格:
CREATE TABLE AG_PAYMENTS_TO_BE
(
PAYMENTID NUMBER(15, 0) NOT NULL
, DEPARTID NUMBER(3,0)
, PENSIONERID NUMBER(11, 0) NOT NULL
, AMOUNT NUMBER(6, 2)
, PERIOD CHAR(6 CHAR)
, PAYMENTTYPE NUMBER(1,0)
, ST NUMBER(1, 0) DEFAULT 0
, CONSTRAINT AG_PAYMENTS_TO_BE_PK PRIMARY KEY
(
PAYMENTID
)
ENABLE
);
可能的查询:
- 从 AG_PAYMENTS_TO_BE 中选择金额,其中 ST=0 且 DEPARTID=112 且 PERIOD='201207';
- 从 AG_PAYMENTS_TO_BE 中选择金额,其中 ST=0 且 PENSIONERID=123456 且 PERIOD='201207';
- 从 AG_PAYMENTS_TO_BE 中选择金额,其中 ST=0 且 PENSIONERID=123456 且 PERIOD='201207' 且 PAYMENTTYPE=1;
- 从 AG_PAYMENTS_TO_BE 中选择金额,其中 ST=0 且 DEPARTID=112 且 ST=0;
- 从 AG_PAYMENTS_TO_BE 中选择金额,其中 ST=0 且 PENSIONERID=123456;
等等。