#include "stdafx.h
"#include
#include
#include
#include
#include
using
namespace
std;
using
namespace boost;
/*定義乙個mutistruct
key : 1. objectid
2. strname
value: 物件指標stnodeptr
*/struct
mutistruct;/*
定義容器,索引
*/using muticontainer = boost::multi_index::multi_index_container boost::multi_index::indexed_by
int, &mutistruct::objectid>>,
boost::multi_index::ordered_unique
string, &mutistruct::strname>>
>
>;
/*有多少個key,就定義多少個列舉,
0:表示以第乙個索引作為key。
1:表示以第二個索引作為key。
*/enum
;using mi_obj_idx = muticontainer::nth_index::type;
using mi_name_idx = muticontainer::nth_index::type;
/*插入資料到容器
*/muticontainer conter;
mutistruct mi;
mi.objectid = 11
;mi.strname = "
nihao";
std::pair
bool> p =conter.insert(mi);
if (!p.second)
聯合索引(多列索引)
聯合索引是指對錶上的多個列進行索引,聯合索引也是一棵b 樹,不同的是聯合索引的鍵值數量不是1,而是大於等於2.最左匹配原則 假定上圖聯合索引的為 a,b 聯合索引也是一棵b 樹,不同的是b 樹在對索引a排序的基礎上,對索引b排序。所以資料按照 1,1 1,2 順序排放。對於selete from t...
mysql多列索引 MySQL的多列索引
什麼是索引?索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b 樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜尋條件的列上已經建立了索引,mysql無需掃瞄任何記錄...
BerkeleyDB 多索引查詢
由於效能原因,我們打算將關係型資料庫轉移到記憶體資料庫中 在記憶體資料庫產品的選型中,我們確定的候選物件有redis和berkeley db redis查詢效率不錯,並且支援豐富的資料儲存結構,但不支援多索引,這樣對於比較複雜的sql移植可能會造成資料膨脹 berkeley db只支援簡單的key ...