1.一種索引建立方法,其特征在于,該方法包括:
根據(jù)數(shù)據(jù)庫中的列在預(yù)設(shè)的時間閾值內(nèi)的索引狀態(tài)信息確定是否需要為所述列建立索引;
若確定需要為所述列建立索引,根據(jù)所述列的數(shù)據(jù)信息確定索引類型,并按照所述索引類型為所述列建立索引。
2.如權(quán)利要求1所述的方法,其特征在于,還包括:
若確定無需為所述列建立索引,在所述時間閾值后根據(jù)所述列在所述時間閾值內(nèi)的索引使用狀況信息確定是否需要為所述列建立索引。
3.如權(quán)利要求2所述的方法,其特征在于,根據(jù)數(shù)據(jù)庫中的列在預(yù)設(shè)的時間閾值內(nèi)的索引狀態(tài)信息確定是否需要為所述列建立索引,具體為:
獲取所述列在所述時間閾值內(nèi)的所述索引狀態(tài)信息;
根據(jù)所述索引狀態(tài)信息判斷所述列在所述時間閾值內(nèi)是否使用索引,并在判斷結(jié)果為是時判斷所述列在所述時間閾值內(nèi)使用索引的次數(shù)是否不小于預(yù)設(shè)的次數(shù)閾值;
若所述列在所述時間閾值內(nèi)未使用索引或所述列在在所述時間閾值內(nèi)使用索引的次數(shù)小于所述次數(shù)閾值,確認(rèn)無需為所述列建立索引;
若所述列在在所述時間閾值內(nèi)使用索引的次數(shù)不小于所述次數(shù)閾值,確定需要為所述列建立索引。
4.如權(quán)利要求1所述的方法,其特征在于,所述索引類型至少包括B樹B-Tree索引、哈希Hash索引、位圖Bitmap索引,根據(jù)所述列的數(shù)據(jù)信息確定索引類型,具體為:
若所述列為連續(xù)型數(shù)值類型,確定所述索引類型為所述B-Tree索引;
若所述列會發(fā)生聯(lián)接Join,確定所述索引類型為所述Hash索引;
若所述列的詞數(shù)大于預(yù)設(shè)的詞數(shù)閾值,確定所述索引類型為倒排索引;
若所述列詞數(shù)不大于預(yù)設(shè)的詞數(shù)閾值,且不會發(fā)生Join以及非連續(xù)型數(shù) 值類型,確定所述索引類型為所述位圖索引。
5.如權(quán)利要求1所述的方法,其特征在于,還包括:
當(dāng)接收到用戶發(fā)送的檢索表達(dá)式時,將所述檢索表達(dá)式拆分為多個子表達(dá)式;
在緩存中查詢是否存在與各所述子表達(dá)式對應(yīng)的檢索結(jié)果;
若存在與所述子表達(dá)式對應(yīng)的檢索結(jié)果,根據(jù)所述檢索結(jié)果以及其他子表達(dá)式的檢索結(jié)果生成用于向所述用戶返回的檢索響應(yīng);
若不存在與所述子表達(dá)式對應(yīng)的檢索結(jié)果,利用所述列的索引對所述子表達(dá)式進(jìn)行檢索,并在根據(jù)所述檢索結(jié)果以及其他子表達(dá)式的檢索結(jié)果生成用于向所述用戶返回的檢索響應(yīng)之后,將檢索結(jié)果存儲與所述緩存。
6.如權(quán)利要求1所述的方法,其特征在于,在根據(jù)數(shù)據(jù)庫中的列在預(yù)設(shè)的時間閾值內(nèi)的索引狀態(tài)信息確定是否需要為所述列建立索引之前,還包括:
當(dāng)所述數(shù)據(jù)庫初始化完成后,按照默認(rèn)的索引類型為所述數(shù)據(jù)庫中的各個列構(gòu)建索引,并在達(dá)到預(yù)設(shè)的時刻重新為各所述列構(gòu)建索引。
7.一種索引建立設(shè)備,其特征在于,包括:
確定模塊,根據(jù)數(shù)據(jù)庫中的列在預(yù)設(shè)的時間閾值內(nèi)的索引狀態(tài)信息確定是否需要為所述列建立索引;
建立模塊,在所述確定模塊確定需要為所述列建立索引時根據(jù)所述列的數(shù)據(jù)信息確定索引類型,并按照所述索引類型為所述列建立索引。
8.如權(quán)利要求1所述的設(shè)備,其特征在于,
所述建立模塊,還在所述確定模塊確定無需為所述列建立索引時,在所述時間閾值后根據(jù)所述列在所述時間閾值內(nèi)的索引使用狀況信息確定是否需要為所述列建立索引。
9.如權(quán)利要求8所述的設(shè)備,其特征在于,所述確定模塊具體用于:
獲取所述列在所述時間閾值內(nèi)的所述索引狀態(tài)信息;
根據(jù)所述索引狀態(tài)信息判斷所述列在所述時間閾值內(nèi)是否使用索引,并在判斷結(jié)果為是時判斷所述列在所述時間閾值內(nèi)使用索引的次數(shù)是否不小于預(yù)設(shè)的次數(shù)閾值;
若所述列在所述時間閾值內(nèi)未使用索引或所述列在在所述時間閾值內(nèi)使用索引的次數(shù)小于所述次數(shù)閾值,確認(rèn)無需為所述列建立索引;
若所述列在在所述時間閾值內(nèi)使用索引的次數(shù)不小于所述次數(shù)閾值,確定需要為所述列建立索引。
10.如權(quán)利要求8所述的設(shè)備,其特征在于,所述索引類型至少包括B-Tree索引、Hash索引、Bitmap索引,所述建立模塊根據(jù)所述列的數(shù)據(jù)信息確定索引類型,具體為:
若所述列為連續(xù)型數(shù)值類型,確定所述索引類型為所述B-Tree索引;
若所述列會發(fā)生Join,確定所述索引類型為所述Hash索引;
若所述列的詞數(shù)大于預(yù)設(shè)的詞數(shù)閾值,確定所述索引類型為倒排索引;
若所述列詞數(shù)不大于預(yù)設(shè)的詞數(shù)閾值,且不會發(fā)生Join以及非連續(xù)型數(shù)值類型,確定所述索引類型為所述位圖索引。
11.如權(quán)利要求8所述的設(shè)備,其特征在于,還包括:
拆分模塊,當(dāng)接收到用戶發(fā)送的檢索表達(dá)式時,將所述檢索表達(dá)式拆分為多個子表達(dá)式;
查詢模塊,在緩存中查詢是否存在與各所述子表達(dá)式對應(yīng)的檢索結(jié)果;
處理模塊,在存在與所述子表達(dá)式對應(yīng)的檢索結(jié)果時根據(jù)所述檢索結(jié)果以及其他子表達(dá)式的檢索結(jié)果生成用于向所述用戶返回的檢索響應(yīng),以及在不存在與所述子表達(dá)式對應(yīng)的檢索結(jié)果時利用所述列的索引對所述子表達(dá)式進(jìn)行檢索,并在根據(jù)所述檢索結(jié)果以及其他子表達(dá)式的檢索結(jié)果生成用于向所述用戶返回的檢索響應(yīng)之后將檢索結(jié)果存儲與所述緩存。
12.如權(quán)利要求8所述的設(shè)備,其特征在于,還包括:
初始化模塊,當(dāng)所述數(shù)據(jù)庫初始化完成后,按照默認(rèn)的索引類型為所述數(shù)據(jù)庫中的各個列構(gòu)建索引,并在達(dá)到預(yù)設(shè)的時刻重新為各所述列構(gòu)建索引。