phoenix 索引為空導致插入失敗

2021-09-02 03:53:02 字數 976 閱讀 2728

昨天測試 基於phoenix 的jdbc資料匯入,同樣的表結構:

create index calling_number on tab_ps_xdr (a);

create index called_number on tab_ps_xdr (b);

create index imsi on tab_ps_xdr (c);

create index imei on tab_ps_xdr (d);

執行下面的語句:

upsert into tab_ps_xdr values('aaaaaaacbaa11','', '','','1','1');

upsert into tab_ps_xdr values('bbaaaabbaa11','', '','','1','1');

upsert into tab_ps_xdr values('ccaaaaccbaa11','', '','','1','1');

upsert into tab_ps_xdr values('ddaaaadcbaa11','', '','','1','1');

之後執行 select count(*)

from tab_px_xdr ; 發現條數沒有變化,插入失敗。

但是將語句修改為:

upsert into tab_ps_xdr values('aaaaaaacbaa11','', '','1','','1');

upsert into tab_ps_xdr values('bbaaaabbaa11','', '','1','','1');

upsert into tab_ps_xdr values('ccaaaaccbaa11','', '','1','','1');

upsert into tab_ps_xdr values('ddaaaadcbaa11','', '','1','','1');

繼續查詢結果,發現插入正常。比較鬱悶。

索引為空是不可以

眾所周知,存在空值的列,在謂詞中有is null會導致索引失效,因為索引都有儲存,你怎麼可能通過索引查詢資料資訊呢?所以,索引大部分情況下建立到主鍵之中 wid之中 所以is null的選擇性還是很強的。那麼在該字段上應該有索引,建立乙個索引create index idx dept fstanda...

Phoenix 索引生命週期

本文主要介紹phoenix索引狀態的生命週期,幫助大家解惑 為什麼我的phoenix索引不能正常使用了?索引總共有以下幾個狀態,其狀態資訊儲存在system.catalog表中。可以通過以下sql來檢視所有索引表資訊 sql中欄位 local 2 usable e unusable d active...

phoenix 全域性索引設計實踐

全域性索引是phoenix的重要特性,合理的使用二級索引能降低查詢延時,讓集群資源得以充分利用。本文將講述如何高效的設計和使用索引。全域性索引的根本是通過單獨的hbase表來儲存資料表的索引資料。我們通過如下示例看索引資料和主表資料的關係。建立資料表 create table data table ...