锘??xml version="1.0" encoding="utf-8" standalone="yes"?>日本三级久久网,91精品国产91久久,日本精品久久久久中文字幕8 http://www.shnenglu.com/eryar/category/21074.htmlzh-cnMon, 13 Dec 2021 06:18:39 GMTMon, 13 Dec 2021 06:18:39 GMT60銆愯漿銆戝祵鍏ュ紡鏁版嵁搴撶郴緇烞erkeley DBhttp://www.shnenglu.com/eryar/archive/2018/11/22/BerkeleyDb.htmleryareryarThu, 22 Nov 2018 01:57:00 GMThttp://www.shnenglu.com/eryar/archive/2018/11/22/BerkeleyDb.htmlhttp://www.shnenglu.com/eryar/comments/216074.htmlhttp://www.shnenglu.com/eryar/archive/2018/11/22/BerkeleyDb.html#Feedback0http://www.shnenglu.com/eryar/comments/commentRss/216074.htmlhttp://www.shnenglu.com/eryar/services/trackbacks/216074.html

鍘熸枃鍦板潃錛?a target="_blank">https://www.ibm.com/developerworks/cn/linux/l-embdb/index.html

鍓嶈█

UNIX/LINUX騫沖彴涓嬬殑鏁版嵁搴撶綾婚潪甯稿錛?a >鍙傝冭祫鏂?涓垪涓句簡鍏朵腑鐨勫ぇ閮ㄥ垎銆傞氬父錛屾垜浠湪璁捐UNIX/LINUX騫沖彴涓嬬殑搴旂敤杞歡鏃訛紝濡傛灉鏁版嵁縐嶇被綣佸,鏁版嵁涓庢暟鎹箣闂村叧緋繪瘮杈冨鏉傦紝灝變細閫夌敤涓浜涘ぇ鍨嬬殑浼佷笟綰ф暟鎹簱緋葷粺錛屽DB2錛孫RACLE銆丼YBASE絳夛紝濡傛灉杞歡瑙勬ā涓嶅ぇ錛屽氨鍊懼悜閫夌敤濡侻YSQL銆丳OSTGRESQL絳変腑灝忓瀷鏁版嵁搴撱備緥濡備嬌鐢≒HP/PERL + MYSQL/POSTGRESQL璁捐緗戠珯鍩烘湰涓婃槸涓涓緢甯歌鐨勫仛娉曘備絾鏄紝褰撳簲鐢ㄨ蔣浠剁鐞嗙殑鏁版嵁綾誨瀷杈冨皯錛堢壒鍒敞鎰忥細榪欏茍涓嶆槸璇撮渶瑕佺鐞嗙殑鏁版嵁閲忓皬錛夛紝鏁版嵁綆$悊鏈韓涓嶅鏉傦紝涓斿鏁版嵁鎿嶄綔瑕佹眰楂樻晥鐜囷紝鍒欑敱澶у悕榧庨紟鐨凚erkeley錛堢編鍥藉姞宸炲ぇ瀛︿集鍏嬪埄鍒嗘牎錛夊紑鍙戠殑 Berkeley DB鍙兘鏄竴涓緢鏄庢櫤鐨勯夋嫨銆?/p>

DB緇艱堪

DB鏈鍒濆紑鍙戠殑鐩殑鏄互鏂扮殑HASH璁塊棶綆楁硶鏉ヤ唬鏇挎棫鐨刪search鍑芥暟鍜屽ぇ閲忕殑dbm瀹炵幇錛堝AT&T鐨刣bm錛孊erkeley鐨刵dbm錛孏NU欏圭洰鐨刧dbm錛?DB鐨勭涓涓彂琛岀増鍦?991騫村嚭鐜幫紝褰撴椂榪樺寘鍚簡B+鏍戞暟鎹闂畻娉曘傚湪1992騫達紝BSD UNIX絎?.4鍙戣鐗堜腑鍖呭惈浜咲B1.85鐗堛傚熀鏈笂璁や負榪欐槸DB鐨勭涓涓寮忕増銆傚湪1996騫翠腑鏈燂紝Sleepycat杞歡鍏徃鎴愮珛錛屾彁渚涘DB鐨勫晢涓氭敮鎸併傚湪榪欎互鍚庯紝DB寰楀埌浜嗗箍娉涚殑搴旂敤錛屽綋鍓嶆渶鏂扮増鏈槸4.3.27銆?/p>

DB鏀寔鍑犱箮鎵鏈夌殑鐜頒唬鎿嶄綔緋葷粺錛屽LINUX銆乁NIX銆乄INDOWS絳夛紝涔熸彁渚涗簡涓板瘜鐨勫簲鐢ㄧ▼搴忔帴鍙o紝鏀寔C銆丆++銆丣AVA銆丳ERL銆乀CL銆丳YTHON銆丳HP絳夈侱B鐨勫簲鐢ㄥ崄鍒嗗箍娉涳紝鍦ㄥ緢澶氱煡鍚嶇殑杞歡涓兘鑳界湅鍒板叾韜獎銆備緥濡?a >鍙傝冭祫鏂?涓綔鑰呰皥鍒板埄鐢―B鍦↙INUX涓嬪疄鐜板唴鏍哥駭鏂囦歡緋葷粺錛?a >鍙傝冭祫鏂?涓氳繃瀹為檯嫻嬭瘯鏁版嵁璇存槑DB鎻愰珮浜哋PENLDAP鐨勬晥鐜囥侺INUX涓嬬殑杞歡鍖呯鐞嗗櫒RPM涔熶嬌鐢―B綆$悊杞歡鍖呯浉鍏蟲暟鎹紝鍙互浣跨敤鍛戒護file鏌ョ湅RPM鏁版嵁鐩綍/var/lib/rpm涓嬬殑鏂囦歡,鍒欐湁褰㈠紡濡備笅鐨勮緭鍑猴細

Dirnames: Berkeley DB (Btree, version 9, native byte-order)
Filemd5s: Berkeley DB (Hash, version 8, native byte-order)

鍊煎緱娉ㄦ剰鐨勬槸DB鏄祵鍏ュ紡鏁版嵁搴撶郴緇燂紝鑰屼笉鏄父瑙佺殑鍏崇郴/瀵硅薄鍨嬫暟鎹簱錛屽SQL璇█涓嶆敮鎸侊紝涔熶笉鎻愪緵鏁版嵁搴撳父瑙佺殑楂樼駭鍔熻兘錛屽瀛樺偍榪囩▼錛岃Е鍙戝櫒絳夈?/p>

DB鐨勮璁℃濇兂

DB鐨勮璁℃濇兂鏄畝鍗曘佸皬宸с佸彲闈犮侀珮鎬ц兘銆傚鏋滆涓浜涗富嫻佹暟鎹簱緋葷粺鏄ぇ鑰屽叏鐨勮瘽錛岄偅涔圖B灝卞彲縐頒負灝忚岀簿銆侱B鎻愪緵浜嗕竴緋誨垪搴旂敤紼嬪簭鎺ュ彛錛圓PI錛夛紝璋冪敤鏈韓寰堢畝鍗曪紝搴旂敤紼嬪簭鍜孌B鎵鎻愪緵鐨勫簱鍦ㄤ竴璧風紪璇戞垚涓哄彲鎵ц紼嬪簭銆傝繖縐嶆柟寮忎粠涓ゆ柟闈㈡瀬澶ф彁楂樹簡DB鐨勬晥鐜囥傜涓錛欴B搴撳拰搴旂敤紼嬪簭榪愯鍦ㄥ悓涓涓湴鍧絀洪棿錛屾病鏈夊鎴風紼嬪簭鍜屾暟鎹簱鏈嶅姟鍣ㄤ箣闂存槀璐電殑緗戠粶閫氳寮閿錛屼篃娌℃湁鏈湴涓繪満榪涚▼涔嬮棿鐨勯氳錛涚浜岋細涓嶉渶瑕佸SQL浠g爜瑙g爜錛屽鏁版嵁鐨勮闂洿鎴簡褰撱?/p>

DB瀵歸渶瑕佺鐞嗙殑鏁版嵁鐪嬫硶寰堢畝鍗曪紝DB鏁版嵁搴撳寘鍚嫢騫叉潯璁板綍錛屾瘡涓涓褰曠敱鍏抽敭瀛楀拰鏁版嵁錛圞EY/VALUE錛夋瀯鎴愩傛暟鎹彲浠ユ槸綆鍗曠殑鏁版嵁綾誨瀷錛屼篃鍙互鏄鏉傜殑鏁版嵁綾誨瀷錛屼緥濡侰璇█涓粨鏋勩侱B瀵規暟鎹被鍨嬩笉鍋氫換浣曡В閲? 瀹屽叏鐢辯▼搴忓憳鑷澶勭悊錛屽吀鍨嬬殑C璇█鎸囬拡鐨?鑷敱"椋庢牸銆傚鏋滄妸璁板綍鐪嬫垚涓涓湁n涓瓧孌電殑琛紝閭d箞絎?涓瓧孌典負琛ㄧ殑涓婚敭錛岀2--n涓瓧孌靛搴斾簡鍏跺畠鏁版嵁銆侱B搴旂敤紼嬪簭閫氬父浣跨敤澶氫釜DB鏁版嵁搴擄紝浠庢煇縐嶆剰涔変笂鐪嬶紝涔熷氨鏄叧緋繪暟鎹簱涓殑澶氫釜琛ㄣ侱B搴撻潪甯哥揣鍑戯紝涓嶈秴榪?00K錛屼絾鍙互綆$悊澶ц嚦256T鐨勬暟鎹噺銆?/p>

DB鐨勮璁″厖鍒嗕綋鐜頒簡UNIX鐨勫熀浜庡伐鍏風殑鍝插錛屽嵆鑻ュ共綆鍗曞伐鍏風殑緇勫悎鍙互瀹炵幇寮哄ぇ鐨勫姛鑳姐侱B鐨勬瘡涓涓熀紜鍔熻兘妯″潡閮借璁捐涓虹嫭绔嬬殑,涔熷嵆鎰忓懗鐫鍏朵嬌鐢ㄩ鍩熷茍涓嶅眬闄愪簬DB鏈韓銆備緥濡傚姞閿佸瓙緋葷粺鍙互鐢ㄤ簬闈濪B搴旂敤紼嬪簭鐨勯氱敤鎿嶄綔錛屽唴瀛樺叡浜紦鍐叉睜瀛愮郴緇熷彲浠ョ敤浜庡湪鍐呭瓨涓熀浜庨〉闈㈢殑鏂囦歡緙撳啿銆?/p>

DB鏍稿績鏁版嵁緇撴瀯

鏁版嵁搴撳彞鏌勭粨鏋凞B錛氬寘鍚簡鑻ュ共鎻忚堪鏁版嵁搴撳睘鎬х殑鍙傛暟錛屽鏁版嵁搴撹闂柟娉曠被鍨嬨侀昏緫欏甸潰澶у皬銆佹暟鎹簱鍚嶇О絳夛紱鍚屾椂錛孌B緇撴瀯涓寘鍚簡澶ч噺鐨勬暟鎹簱澶勭悊鍑芥暟鎸囬拡錛屽ぇ澶氭暟褰㈠紡涓?錛?dosomething錛?DB *, arg1, arg2, …)銆傚叾涓渶閲嶈鐨勬湁open,close,put,get絳夊嚱鏁般?/p>

鏁版嵁搴撹褰曠粨鏋凞BT錛欴B涓殑璁板綍鐢卞叧閿瓧鍜屾暟鎹瀯鎴愶紝鍏抽敭瀛楀拰鏁版嵁閮界敤緇撴瀯DBT琛ㄧず銆傚疄闄呬笂瀹屽叏鍙互鎶婂叧閿瓧鐪嬫垚鐗規畩鐨勬暟鎹傜粨鏋勪腑鏈閲嶈鐨勪袱涓瓧孌墊槸 void * data鍜寀_int32_t size錛屽垎鍒搴旀暟鎹湰韜拰鏁版嵁鐨勯暱搴︺?/p>

鏁版嵁搴撴父鏍囩粨鏋凞BC錛氭父鏍囷紙cursor錛夋槸鏁版嵁搴撳簲鐢ㄤ腑甯歌姒傚康錛屽叾鏈川涓婂氨鏄竴涓叧浜庣壒瀹氳褰曠殑閬嶅巻鍣ㄣ傛敞鎰忓埌DB鏀寔澶氶噸璁板綍錛坉uplicate records錛夛紝鍗沖鏉¤褰曟湁鐩稿悓鍏抽敭瀛楋紝鍦ㄥ澶氶噸璁板綍鐨勫鐞嗕腑錛屼嬌鐢ㄦ父鏍囨槸鏈瀹規槗鐨勬柟寮忋?/p>

鏁版嵁搴撶幆澧冨彞鏌勭粨鏋凞B_ENV錛氱幆澧冨湪DB涓睘浜庨珮綰х壒鎬э紝鏈川涓婄湅錛岀幆澧冩槸澶氫釜鏁版嵁搴撶殑鍖呰鍣ㄣ傚綋涓涓垨澶氫釜鏁版嵁搴撳湪鐜涓墦寮鍚庯紝鐜鍙互涓鴻繖浜涙暟鎹簱鎻愪緵澶氱瀛愮郴緇熸湇鍔★紝渚嬪澶氱嚎/榪涚▼澶勭悊鏀寔銆佷簨鍔″鐞嗘敮鎸併侀珮鎬ц兘鏀寔銆佹棩蹇楁仮澶嶆敮鎸佺瓑銆?/p>

DB涓牳蹇冩暟鎹粨鏋勫湪浣跨敤鍓嶉兘瑕佸垵濮嬪寲錛岄殢鍚庡彲浠ヨ皟鐢ㄧ粨鏋勪腑鐨勫嚱鏁幫紙鎸囬拡錛夊畬鎴愬悇縐嶆搷浣滐紝鏈鍚庡繀欏誨叧闂暟鎹粨鏋勩備粠璁捐鎬濇兂鐨勫眰闈笂鐪嬶紝榪欑璁捐鏂規硶鏄埄鐢ㄩ潰鍚戣繃紼嬭璦瀹炵幇闈㈠瀵硅薄緙栫▼鐨勪竴涓吀鑼冦?/p>

DB鏁版嵁璁塊棶綆楁硶

鍦ㄦ暟鎹簱棰嗗煙涓?鏁版嵁璁塊棶綆楁硶瀵瑰簲浜嗘暟鎹湪紜洏涓婄殑瀛樺偍鏍煎紡鍜屾搷浣滄柟娉曘傚湪緙栧啓搴旂敤紼嬪簭鏃訛紝閫夋嫨鍚堥傜殑綆楁硶鍙兘浼氬湪榪愮畻閫熷害涓婃彁楂?涓敋鑷沖涓暟閲忕駭銆傚ぇ澶氭暟鏁版嵁搴撻兘閫夌敤B+鏍戠畻娉曪紝DB涔熶笉渚嬪錛屽悓鏃惰繕鏀寔HASH綆楁硶銆丷ecno綆楁硶鍜孮ueue綆楁硶銆傛帴涓嬫潵錛屾垜浠皢璁ㄨ榪欎簺綆楁硶鐨勭壒鐐逛互鍙婂浣曟牴鎹渶瑕佸瓨鍌ㄦ暟鎹殑鐗圭偣榪涜閫夋嫨銆?/p>

B+鏍戠畻娉曪細B+鏍戞槸涓涓鉤琛℃爲錛屽叧閿瓧鏈夊簭瀛樺偍錛屽茍涓斿叾緇撴瀯鑳介殢鏁版嵁鐨勬彃鍏ュ拰鍒犻櫎榪涜鍔ㄦ佽皟鏁淬備負浜嗕唬鐮佺殑綆鍗曪紝DB娌℃湁瀹炵幇瀵瑰叧閿瓧鐨勫墠緙鐮佸帇緙┿侭+鏍戞敮鎸佸鏁版嵁鏌ヨ銆佹彃鍏ャ佸垹闄ょ殑甯告暟綰ч熷害銆傚叧閿瓧鍙互涓轟換鎰忕殑鏁版嵁緇撴瀯銆?/p>

HASH綆楁硶錛欴B涓疄闄呬嬌鐢ㄧ殑鏄墿灞曠嚎鎬ASH綆楁硶錛坋xtended linear hashing錛夛紝鍙互鏍規嵁HASH琛ㄧ殑澧為暱榪涜閫傚綋鐨勮皟鏁淬傚叧閿瓧鍙互涓轟換鎰忕殑鏁版嵁緇撴瀯銆?/p>

Recno綆楁硶錛?瑕佹眰姣忎竴涓褰曢兘鏈変竴涓昏緫綰綍鍙鳳紝閫昏緫綰綍鍙風敱綆楁硶鏈韓鐢熸垚銆傚疄闄呬笂錛岃繖鍜屽叧緋誨瀷鏁版嵁搴撲腑閫昏緫涓婚敭閫氬父瀹氫箟涓篿nt AUTO鍨嬫槸鍚屼竴涓蹇點俁echo寤虹珛鍦˙+鏍戠畻娉曚箣涓婏紝鎻愪緵浜嗕竴涓瓨鍌ㄦ湁搴忔暟鎹殑鎺ュ彛銆傝褰曠殑闀垮害鍙互涓哄畾闀挎垨涓嶅畾闀褲?/p>

Queue綆楁硶錛氬拰Recno鏂瑰紡鎺ヨ繎, 鍙笉榪囪褰曠殑闀垮害涓哄畾闀褲傛暟鎹互瀹氶暱璁板綍鏂瑰紡瀛樺偍鍦ㄩ槦鍒椾腑錛屾彃鍏ユ搷浣滄妸璁板綍鎻掑叆鍒伴槦鍒楃殑灝鵑儴錛岀浉姣斾箣涓嬫彃鍏ラ熷害鏄渶蹇殑銆?/p>

瀵圭畻娉曠殑閫夋嫨棣栧厛瑕佺湅鍏抽敭瀛楃殑綾誨瀷錛屽鏋滀負澶嶆潅綾誨瀷錛屽垯鍙兘閫夋嫨B+鏍戞垨HASH綆楁硶錛屽鏋滃叧閿瓧涓洪昏緫璁板綍鍙鳳紝鍒欏簲璇ラ夋嫨Recno鎴朡ueue綆楁硶銆傚綋宸ヤ綔闆嗗叧閿瓧鏈夊簭鏃訛紝B+鏍戠畻娉曟瘮杈冨悎閫傦紱濡傛灉宸ヤ綔闆嗘瘮杈冨ぇ涓斿熀鏈笂鍏抽敭瀛椾負闅忔満鍒嗗竷鏃訛紝閫夋嫨HASH綆楁硶銆俀ueue綆楁硶鍙兘瀛樺偍瀹氶暱鐨勮褰曪紝鍦ㄩ珮鐨勫茍鍙戝鐞嗘儏鍐典笅錛孮ueue綆楁硶鏁堢巼杈冮珮錛涘鏋滄槸鍏跺畠鎯呭喌錛屽垯閫夋嫨Recno綆楁硶錛孯ecno綆楁硶鎶婃暟鎹瓨鍌ㄤ負騫抽潰鏂囦歡鏍煎紡銆?/p>

DB甯哥敤鍑芥暟浣跨敤鑼冧緥

#include <db.h> 
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
/* DB鐨勫嚱鏁版墽琛屽畬鎴愬悗錛岃繑鍥?浠h〃鎴愬姛錛屽惁鍒欏け璐?nbsp;*/
void print_error(int ret)
{
    if(ret != 0)
        printf("ERROR: %s\n",db_strerror(ret));
}
/* 鏁版嵁緇撴瀯DBT鍦ㄤ嬌鐢ㄥ墠錛屽簲棣栧厛鍒濆鍖栵紝鍚﹀垯緙栬瘧鍙氳繃浣嗚繍琛屾椂鎶ュ弬鏁伴敊璇?nbsp; */
void init_DBT(DBT * key, DBT * data)
{
    memset(key, 0, sizeof(DBT));
    memset(data, 0, sizeof(DBT));
}
void main(void)
{
    DB *dbp;           
    DBT key, data;
    u_int32_t flags;  
    int ret;
    char *fruit = "apple";
    int number = 15;
     
    typedef struct customer
    {
        int  c_id;
        char name[10];
        char address[20];
        int  age;
    } CUSTOMER;
    CUSTOMER cust; 
    int key_cust_c_id = 1;
    cust.c_id = 1;
    strncpy(cust.name, "javer", 9);
    strncpy(cust.address, "chengdu", 19);
    cust.age = 32;
    /* 棣栧厛鍒涘緩鏁版嵁搴撳彞鏌?nbsp;*/
    ret = db_create(&dbp, NULL, 0);
    print_error(ret);
     
    /* 鍒涘緩鏁版嵁搴撴爣蹇?nbsp;*/
    flags = DB_CREATE;    
    /* 鍒涘緩涓涓悕涓簊ingle.db鐨勬暟鎹簱錛屼嬌鐢˙+鏍戣闂畻娉曪紝鏈浠g爜婕旂ず瀵圭畝鍗曟暟鎹被鍨嬬殑澶勭悊 */
    ret = dbp->open(dbp, NULL, "single.db", NULL, DB_BTREE, flags, 0); 
    print_error(ret);
    init_DBT(&key, &data);
     
    /* 鍒嗗埆瀵瑰叧閿瓧鍜屾暟鎹祴鍊煎拰瑙勫畾闀垮害 */
    key.data = fruit;
    key.size = strlen(fruit) + 1;
    data.data = &number;
    data.size = sizeof(int);
    /* 鎶婅褰曞啓鍏ユ暟鎹簱涓紝涓嶅厑璁歌鐩栧叧閿瓧鐩稿悓鐨勮褰?nbsp;*/
    ret = dbp->put(dbp, NULL, &key, &data,DB_NOOVERWRITE); 
    print_error(ret);
     
/* 鎵嬪姩鎶婄紦瀛樹腑鐨勬暟鎹埛鏂板埌紜洏鏂囦歡涓紝瀹為檯涓婂湪鍏抽棴鏁版嵁搴撴椂錛屾暟鎹細琚嚜鍔ㄥ埛鏂?nbsp;*/
dbp->sync()錛?br />     
init_DBT(&key, &data);
    key.data = fruit;
    key.size = strlen(fruit) + 1;
     
    /* 浠庢暟鎹簱涓煡璇㈠叧閿瓧涓篴pple鐨勮褰?nbsp;*/
    ret = dbp->get(dbp, NULL, &key, &data, 0);
    print_error(ret);
    /* 鐗瑰埆瑕佹敞鎰忔暟鎹粨鏋凞BT鐨勫瓧孌礵ata涓簐oid *鍨嬶紝鎵浠ュ湪瀵筪ata璧嬪煎拰鍙栧兼椂錛岃鍋氬繀瑕佺殑綾誨瀷杞崲銆?nbsp;*/
    printf("The number = %d\n", *(int*)(data.data));
     
    if(dbp != NULL)
            dbp->close(dbp, 0); 
    ret = db_create(&dbp, NULL, 0);
    print_error(ret);
    flags = DB_CREATE;    
    /* 鍒涘緩涓涓悕涓篶omplex.db鐨勬暟鎹簱錛屼嬌鐢℉ASH璁塊棶綆楁硶錛屾湰孌典唬鐮佹紨紺哄澶嶆潅鏁版嵁緇撴瀯鐨勫鐞?nbsp;*/
    ret = dbp->open(dbp, NULL, "complex.db", NULL, DB_HASH, flags, 0); 
    print_error(ret);
    init_DBT(&key, &data);
    key.size = sizeof(int);
    key.data = &(cust.c_id);
    data.size = sizeof(CUSTOMER);
    data.data = &cust;
    ret = dbp->put(dbp, NULL, &key, &data,DB_NOOVERWRITE);
    print_error(ret);
     
    memset(&cust, 0, sizeof(CUSTOMER));
     
    key.size = sizeof(int);
    key.data = &key_cust_c_id;
    data.data = &cust;
    data.ulen = sizeof(CUSTOMER); 
    data.flags = DB_DBT_USERMEM;
    dbp->get(dbp, NULL, &key, &data, 0);
    print_error(ret);
     
    printf("c_id = %d name = %s address = %s age = %d\n", 
        cust.c_id, cust.name, cust.address, cust.age);
     
    if(dbp != NULL)
            dbp->close(dbp, 0); 
}

DB娓告爣浣跨敤鑼冧緥

娓告爣鏄緷璧栦簬鏁版嵁搴撳彞鏌勭殑錛屽簲鐢ㄧ▼搴忎唬鐮佹鏋跺涓嬶細

1
2
3
4
5
6
7
8
9
10
/* 瀹氫箟涓涓父鏍囧彉閲?*/
DBC * cur;
/* 棣栧厛鎵撳紑鏁版嵁搴擄紝鍐嶆墦寮娓告爣 */
dbp->open(dbp, ……);
dbp->cursor(dbp, NULL, &cur, 0);
 
/* do something with cursor */
/* 棣栧厛鍏抽棴錛屽湪鍏抽棴鏁版嵁搴?*/
cur->c_close(cur);
dbp->close(dbp, 0);

鍦ㄦ父鏍囨墦寮鍚庯紝鍙互浠ュ縐嶆柟寮忛亶鍘嗙壒瀹氳褰曘?/p>

1
2
3
4
5
6
7
    Memset(&key, 0, sizeof(DBT));
Memset(&data, 0, sizeof(DBT));
/* 鍥犱負KEY鍜孌ATA涓虹┖錛屽垯娓告爣閬嶅巻鏁翠釜鏁版嵁搴撹褰?*/
While((ret = cur->c_get(cur, &key, &data, DB_NEXT)) == 0)
{
    /* do something with key and data */
}

褰撴兂鏌ヨ鐗瑰畾鍏抽敭瀛楀搴旂殑璁板綍錛屽垯搴斿鍏抽敭瀛楄祴鍊鹼紝騫舵妸cur->c_get()鍑芥暟涓爣蹇椾綅璁劇疆涓篋B_SET銆備緥濡傦細

1
2
3
4
5
6
    key.data = "xxxxx";
key.size =  XXX;
While((ret = cur->c_get(cur, &key, &data, DB_SET)) == 0)
{
    /* do something with key and data */
}

娓告爣鐨勪綔鐢ㄨ繕鏈夊緢澶氾紝濡傛煡璇㈠閲嶈褰曪紝鎻掑叆/淇敼/鍒犻櫎璁板綍絳夈?/p>

DB鐜浣跨敤鑼冧緥

鏈枃鍓嶉潰宸茶鏄庣幆澧冩槸DB鏁版嵁搴撶殑鍖呰鍣紝鎻愪緵澶氱楂樼駭鍔熻兘銆傚簲鐢ㄧ▼搴忎唬鐮佹鏋跺涓嬶細

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* 瀹氫箟涓涓幆澧冨彉閲忥紝騫跺垱寤?*/
  DB_ENV *dbenv;
  db_env_create(&dbenv, 0);
   
/* 鍦ㄧ幆澧冩墦寮涔嬪墠錛屽彲璋冪敤褰㈠紡涓篸benv->set_XXX()鐨勮嫢騫插嚱鏁拌緗幆澧?*/
  /* 閫氱煡DB浣跨敤Rijndael鍔犲瘑綆楁硶錛堝弬鑰冭祫鏂?gt;錛夊鏁版嵁榪涜澶勭悊 */
dbenv->set_encrypt(dbenv, "encrypt_string", DB_ENCRYPT_AES);
  /* 璁劇疆DB鐨勭紦瀛樹負5M */
dbenv->set_cachesize(dbenv, 0, 5 * 1024 * 1024, 0);
/* 璁劇疆DB鏌ユ壘鏁版嵁搴撴枃浠剁殑鐩綍 */
  dbenv->set_data_dir(dbenv, "/usr/javer/work_db");
  /* 鎵撳紑鏁版嵁搴撶幆澧冿紝娉ㄦ剰鍚庡洓涓爣蹇楀垎鍒寚紺篋B鍚姩鏃ュ織銆佸姞閿併佺紦瀛樸佷簨鍔″鐞嗗瓙緋葷粺 */
  dbenv->open(dbenv,home,DB_CREATE|DB_INIT_LOG|DB_INIT_LOCK| DB_INIT_MPOOL
                |DB_INIT_TXN, 0)錛?/code>
   
  /* 鍦ㄧ幆澧冩墦寮鍚庯紝鍒欏彲浠ユ墦寮鑻ュ共涓暟鎹簱錛屾墍鏈夋暟鎹簱鐨勫鐞嗛兘鍦ㄧ幆澧冪殑鎺у埗鍜屼繚鎶や腑銆?/code>
娉ㄦ剰db_create鍑芥暟鐨勭浜屼釜鍙傛暟鏄幆澧冨彉閲?*/
db_create(&dbp1, dbenv, 0)錛?/code>
dbp1->open(dbp1, ……);
db_create(&dbp2, dbenv, 0)錛?/code>
dbp1->open(dbp2, ……);
  /* do something with the database */
  /* 鏈鍚庨鍏堝叧闂墦寮鐨勬暟鎹簱錛屽啀鍏抽棴鐜 */
  dbp2->close(dbp2, 0);
  dbp1->close(dbp1, 0);
  dbenv->close(dbenv, 0);

DB杞歡鐨勫畨瑁呭拰緙栬瘧

浠嶥B鐨勫畼鏂圭珯鐐?a >http://www.sleepycat.com/涓嬭澆鏈鏂扮殑杞歡鍖卍b-4.3.27.tar.gz錛岃В鍘嬪埌宸ヤ綔鐩綍錛岃繘鍏ヨ鐩綍錛屼緷嬈℃墽琛屼笅鍒椾笁鏉″懡浠ゅ嵆鍙?/p>

1
2
3
../dist/configure
make
make install

鎵цmake uninstall錛屽垯鍙嵏杞藉凡瀹夎鐨凞B杞歡銆?/p>

DB緙虹渷鎶婂簱鍜屽ご鏂囦歡瀹夎鍦ㄧ洰褰?usr/local/BerkeleyDB.4.3/涓嬶紝浣跨敤gcc test.c -ggdb -I/usr/local/BerkeleyDB.4.3/include/ -L/usr/local/BerkeleyDB.4.3/lib/ -ldb -lpthread灝卞彲姝g‘緙栬瘧紼嬪簭銆傚鏋滆鑰呯殑嫻嬭瘯涓繪満鎿嶄綔緋葷粺涓篟ED HAT9,鍒欏畨瑁呯殑DB鐗堟湰鍙兘鏄?.0銆傜壒鍒娉ㄦ剰鍒拌繖涓や釜鐗堟湰鐨勫簱鏄笉鍏煎鐨勩備緥濡傛墦寮鏁版嵁搴撳嚱鏁癉B->open(),鍦?.0鐗堟湰涓叆鍙備負6涓紝鑰屽湪4.3鐗堜腑鍒欎負7涓紙鍙嚜琛屾瘮杈冧袱涓簱鐨勫ご鏂囦歡db.h涓璂B->open鍑芥暟鐨勫畾涔夛級銆傚洜涓哄湪DB鐩稿叧鐨勫簲鐢ㄧ▼搴忎腑錛宱pen鍑芥暟鍩烘湰涓婇兘鏄鎵ц鐨勶紝鎵浠ュ鏋滃嚱鏁板拰鐗堟湰涓嶅尮閰嶏紝緙栬瘧鑲畾浼氬嚭閿欍傚綋鐒訛紝緙栬瘧瀹屾垚鍚庯紝鍙互浣跨敤鍛戒護ldd鏌ョ湅搴撶殑渚濊禆鍏崇郴銆?/p>

鎬葷粨

DB鏄竴涓叿鏈夊伐涓氬己搴︾殑宓屽叆寮忔暟鎹簱緋葷粺錛屾暟鎹鐞嗙殑鏁堢巼寰堥珮銆侱B鍔熻兘鐨勭ǔ瀹氭у巻緇忔椂闂寸殑鑰冮獙錛屽湪澶ч噺搴旂敤紼嬪簭涓嬌鐢ㄤ究鏄槑璇併傚彲浠ユ兂瑙侊紝鍦ㄥ悓絳変唬鐮佽川閲忕殑鏉′歡涓嬶紝杞歡鐨凚UG鏁板拰浠g爜鐨勯暱搴︽槸鎴愭姣旂殑錛岀浉瀵瑰嚑鍗佸厗銆佸嚑鐧懼厗澶у瀷鏁版嵁搴撹蔣浠訛紝DB鐨勫彧鏈変笉鍒?00K鐨勫ぇ灝忥紒

浠庡疄鐜板姛鑳戒笂鐪?DB鏄交閲忕駭鏁版嵁搴撶郴緇燂紝鎴栧彲縐頒負"鏋? 杞婚噺綰ф暟鎹簱緋葷粺銆備絾鏄紝鎴戣涓轟笉鑳藉洜姝よ屽績瀛樿交瑙嗕箣鎰忥紝鎵璋?灝烘湁鎵鐭紝瀵告湁鎵闀?錛屼互緇濆瑙掑害姣旇緝宸ュ叿涔嬮棿鐨勫ソ鍧忔槸娌℃湁浠涔堟剰涔夌殑錛屽叧閿湪浜庡宸ュ叿鐨勯夋嫨鍜岃繍鐢紙浼間箮鍙互鍙傝冧竴涓嬫瀬闄愮紪紼嬬殑鎬濇兂錛夈備篃璁革紝姝g‘鐨?琛ㄨ揪鑼冨紡"搴旇鏄細鍦ㄥ綋鍓嶅簲鐢ㄨ儗鏅笅錛岄夋嫨榪欑宸ュ叿鏄渶鍚堥傜殑銆?/p>



eryar 2018-11-22 09:57 鍙戣〃璇勮
]]>
Getting Started with PostgreSQLhttp://www.shnenglu.com/eryar/archive/2015/03/28/210183.htmleryareryarSat, 28 Mar 2015 04:56:00 GMThttp://www.shnenglu.com/eryar/archive/2015/03/28/210183.htmlhttp://www.shnenglu.com/eryar/comments/210183.htmlhttp://www.shnenglu.com/eryar/archive/2015/03/28/210183.html#Feedback0http://www.shnenglu.com/eryar/comments/commentRss/210183.htmlhttp://www.shnenglu.com/eryar/services/trackbacks/210183.html闃呰鍏ㄦ枃

eryar 2015-03-28 12:56 鍙戣〃璇勮
]]>
鏁版嵁搴撹璁?/title><link>http://www.shnenglu.com/eryar/archive/2011/12/30/163190.html</link><dc:creator>eryar</dc:creator><author>eryar</author><pubDate>Fri, 30 Dec 2011 10:02:00 GMT</pubDate><guid>http://www.shnenglu.com/eryar/archive/2011/12/30/163190.html</guid><wfw:comment>http://www.shnenglu.com/eryar/comments/163190.html</wfw:comment><comments>http://www.shnenglu.com/eryar/archive/2011/12/30/163190.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/eryar/comments/commentRss/163190.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/eryar/services/trackbacks/163190.html</trackback:ping><description><![CDATA[<ol> <li>鏁版嵁搴撶殑璁捐鏃㈣婊¤凍鐢ㄦ埛鐨勯渶姹傦紝鍙堜笌緇欏畾鐨勫簲鐢ㄧ幆澧冨瘑鍒囩浉鍏籌紝鍥犳蹇呴』閲囩敤緋葷粺鍖栥佽鑼冨寲鐨勮璁℃柟娉曪紝鎸夐渶姹傚垎鏋愩佹蹇佃璁°侀昏緫璁捐銆佺墿鐞嗚璁″洓涓樁孌靛睍寮銆? </li><li>闇姹傚垎鏋愬氨鏄垎鏋愮敤鎴風殑瑕佹眰錛屾槸鏁版嵁搴撹璁$殑鍩虹銆傞氳繃璋冩煡鍜屽垎鏋愶紝浜嗚В鐢ㄦ埛鐨勪俊鎭渶姹傚拰澶勭悊闇姹傦紝騫朵互鏁版嵁嫻佸浘銆佹暟鎹瓧鍏哥瓑褰㈠紡鍔犱互鎻忚堪銆? </li><li>姒傚康璁捐涓昏鏄妸闇姹傚垎鏋愰樁孌靛緱鍒扮殑鐢ㄦ埛闇姹傛娊璞″寲鎴愭蹇墊ā鍨嬨傛蹇佃璁℃槸鏁版嵁搴撹璁$殑鍏抽敭銆傛垜浠皢浣跨敤E-R妯″瀷浣滀負姒傚康璁捐鐨勫伐鍏楓? </li><li>閫昏緫璁捐灝辨槸鎶婃蹇佃璁¢樁孌典駭鐢熺殑姒傚康妯″瀷杞寲涓洪昏緫妯″紡銆傚洜涓洪昏緫璁捐涓嶥BMS瀵嗗垏鐩稿叧錛屾墍浠ヨ繘鏁版嵁搴撻昏緫璁捐棣栧厛蹇呴』灝嗘蹇佃璁′腑寰楀埌鐨凟-R鍥捐漿鎹㈡垚絳変環鐨勫叧緋繪ā寮忋? </li><li>鐗╃悊璁捐鏄負鍏崇郴妯″紡閫夋嫨鍚堥傜殑瀛樺彇鏂規硶鍜屽瓨鍌ㄧ粨鏋勩?/li></ol><img src ="http://www.shnenglu.com/eryar/aggbug/163190.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/eryar/" target="_blank">eryar</a> 2011-12-30 18:02 <a href="http://www.shnenglu.com/eryar/archive/2011/12/30/163190.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.shilanghong.cn" target="_blank">中文字幕无码av激情不卡久久 </a>| <a href="http://www.zhongxiangka.cn" target="_blank">久久影视国产亚洲</a>| <a href="http://www.elecline.com.cn" target="_blank">99久久精品免费看国产</a>| <a href="http://www.pyqf.net.cn" target="_blank">久久久久人妻精品一区三寸蜜桃</a>| <a href="http://www.hiinterface.cn" target="_blank">久久夜色精品国产</a>| <a href="http://www.lsjtht.cn" target="_blank">久久亚洲精精品中文字幕</a>| <a href="http://www.hrwp.net.cn" target="_blank">亚洲成人精品久久</a>| <a href="http://www.sjsgsl.net.cn" target="_blank">7777精品久久久大香线蕉 </a>| <a href="http://www.dntjj.cn" target="_blank">色综合久久中文字幕综合网</a>| <a href="http://www.hiinterface.cn" target="_blank">久久久一本精品99久久精品88</a>| <a href="http://www.wzwsbz.cn" target="_blank">2020久久精品国产免费</a>| <a href="http://www.omsf.cn" target="_blank">婷婷久久综合九色综合九七</a>| <a href="http://www.netbirds.cn" target="_blank">99精品久久久久中文字幕</a>| <a href="http://www.jkwovf.cn" target="_blank">亚洲精品国精品久久99热</a>| <a href="http://www.yczu.cn" target="_blank">97久久精品人人做人人爽</a>| <a href="http://www.4o2ptp.cn" target="_blank">性欧美大战久久久久久久久 </a>| <a href="http://www.waterbirds.cn" target="_blank">久久免费的精品国产V∧</a>| <a href="http://www.413qq.cn" target="_blank">久久996热精品xxxx</a>| <a href="http://www.gpshd.cn" target="_blank">国产∨亚洲V天堂无码久久久</a>| <a href="http://www.1985328.cn" target="_blank">亚洲国产成人精品无码久久久久久综合</a>| <a href="http://www.wwmw.com.cn" target="_blank">一本色道久久HEZYO无码</a>| <a href="http://www.gdczjt.cn" target="_blank">久久精品中文字幕一区</a>| <a href="http://www.z8990.cn" target="_blank">久久福利青草精品资源站</a>| <a href="http://www.lssbb.cn" target="_blank">久久亚洲美女精品国产精品</a>| <a href="http://www.xinhaitugong.cn" target="_blank">日本久久中文字幕</a>| <a href="http://www.0553fc.cn" target="_blank">国产综合成人久久大片91</a>| <a href="http://www.1u11.cn" target="_blank">嫩草影院久久国产精品</a>| <a href="http://www.hrbtwlh.cn" target="_blank">久久精品亚洲一区二区三区浴池</a>| <a href="http://www.0577114.cn" target="_blank">精品国产日韩久久亚洲</a>| <a href="http://www.ssxgsl.cn" target="_blank">久久久久国产一级毛片高清板</a>| <a href="http://www.5o42i9.cn" target="_blank">久久99国产精品久久</a>| <a href="http://www.tehmd.cn" target="_blank">久久精品国产一区</a>| <a href="http://www.gmve.cn" target="_blank">国产精品福利一区二区久久</a>| <a href="http://www.liru56.cn" target="_blank">999久久久无码国产精品</a>| <a href="http://www.suzhougarden.cn" target="_blank">欧美丰满熟妇BBB久久久</a>| <a href="http://www.t24196.cn" target="_blank">一本色道久久综合狠狠躁</a>| <a href="http://www.hbsannong.com.cn" target="_blank">久久精品国产99久久久古代</a>| <a href="http://www.juntiankeji.cn" target="_blank">国产69精品久久久久观看软件</a>| <a href="http://www.vrfx.cn" target="_blank">伊色综合久久之综合久久</a>| <a href="http://www.agentsystem.cn" target="_blank">久久综合亚洲鲁鲁五月天</a>| <a href="http://www.mir155.cn" target="_blank">久久精品国产亚洲AV香蕉</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>