create index ind on t(col1 ,0)
likgui 說的方案可以。
下面是我的實驗過程。
建兩個表,test表在cnt列上做了乙個null的索引,testx表則cnt列上沒有定義索引。
當同是執行 「where cnt is not null」條件時,test走了索引,而textx走的是全表掃瞄。
select * from testx where cnt is not null
select * from test where cnt is not null
【建表】
-- create table
create table test
(id number,
cnt number,
c1 varchar2(10),
c2 varchar2(10));
-- create/recreate indexes
create index idx_test on test (cnt, 0)
;-- create table
create table testx
(id number,
cnt number,
c1 varchar2(10),
c2 varchar2(10));
【表中資料】
sql> select * from testx;
id cnt c1 c2
---------- ---------- ---------- ----------
1 3 aa aaa
2 bb bbb
3 4 bb bbb
4 bb bbb
5 bb bbb
6 5 bb bbb
7 bb bbb
8 6 bb bbb
9 7 bb bbb
9 rows selected
sql>
sql> select * from test;
id cnt c1 c2
---------- ---------- ---------- ----------
1 3 aa aaa
2 bb bbb
3 4 bb bbb
4 bb bbb
5 bb bbb
6 5 bb bbb
7 bb bbb
8 6 bb bbb
9 7 bb bbb
9 rows selected
sql>
【執行計畫 testx表】
select * from testx where cnt is not null
select statement, goal = all_rows cost=3 cardinality=5 bytes=200
table access full object owner=scott object name=testx cost=3 cardinality=5 bytes=200
【執行計畫 test表】
select * from test where cnt is not null
select statement, goal = all_rows cost=2 cardinality=5 bytes=200
table access by index rowid object owner=scott object name=test cost=2 cardinality=5 bytes=200
index full scan object owner=scott object name=idx_test cost=1 cardinality=1
where 條件為空時不走where條件
mysql 若想當where 條件為空時不走where條件,where可以整個為空,但裡面的如where is status sta tus 的 status 的 status 的status不能為空,不然會查詢出status為空的資料,記錄一下。where sta demandstatus if ...
走迷宮演算法
從起點問題的提出 在遊戲地圖中,如何尋找一條從起點到終點的最短行路線路?資料表達 使用m n大小的byte陣列 來表示地圖,每個位置的狀態用0表示可走,1表示牆,2表示起點,3表示終點,128表示路徑 行走規則有兩種 4方向行走規則 只能從當前點向上,下,左,右 這4個方向行走 8方向行走規則 可以...
走樓梯問題
宣告 題目來自 自己先做一遍。27.跳台階問題 題目 乙個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。這道題最近經常出現,包括microstrategy等比較重視演算法的公司都 曾先後選用過個這道題作為面試題或者筆試題。思路 一開始我想到的方法就是...