锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美精品粉嫩高潮一区二区,午夜精品婷婷,久久精品国产99精品国产亚洲性色http://www.shnenglu.com/swordhell/category/3270.html鍚涘瓙鏇幫細瀛︿笉鍙互宸層?/description>zh-cnTue, 20 May 2008 04:18:47 GMTTue, 20 May 2008 04:18:47 GMT60Berkeley DB鐨勫熀鏈嬌鐢?/title><link>http://www.shnenglu.com/swordhell/articles/16419.html</link><dc:creator>Sword.Hell blog</dc:creator><author>Sword.Hell blog</author><pubDate>Thu, 14 Dec 2006 03:14:00 GMT</pubDate><guid>http://www.shnenglu.com/swordhell/articles/16419.html</guid><wfw:comment>http://www.shnenglu.com/swordhell/comments/16419.html</wfw:comment><comments>http://www.shnenglu.com/swordhell/articles/16419.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/swordhell/comments/commentRss/16419.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/swordhell/services/trackbacks/16419.html</trackback:ping><description><![CDATA[     鎽樿: 鍦ㄤ笅杞藉畨瑁呰繖涓暟鎹簱涔嬪悗錛屾潵浣跨敤榪欐牱鐨勬暟鎹簱鍋氫竴涓緥瀛愩?.鍒涘緩涓涓暟鎹簱 #include聽 < db_cxx.h > #include聽 < iostream > #include聽...  <a href='http://www.shnenglu.com/swordhell/articles/16419.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/swordhell/aggbug/16419.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/swordhell/" target="_blank">Sword.Hell blog</a> 2006-12-14 11:14 <a href="http://www.shnenglu.com/swordhell/articles/16419.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Berkeley DB緗戜笂鐨勮祫婧?/title><link>http://www.shnenglu.com/swordhell/articles/16412.html</link><dc:creator>Sword.Hell blog</dc:creator><author>Sword.Hell blog</author><pubDate>Thu, 14 Dec 2006 02:23:00 GMT</pubDate><guid>http://www.shnenglu.com/swordhell/articles/16412.html</guid><wfw:comment>http://www.shnenglu.com/swordhell/comments/16412.html</wfw:comment><comments>http://www.shnenglu.com/swordhell/articles/16412.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/swordhell/comments/commentRss/16412.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/swordhell/services/trackbacks/16412.html</trackback:ping><description><![CDATA[ <p> <br />涓嬭澆鍦板潃錛?br /><a >http://www.oracle.com/database/berkeley-db/index.html</a><br /><a >http://www.oracle.com/technology/software/products/berkeley-db/db/index.html</a><br />[2006-12-13]鎴戠幇鍦ㄤ嬌鐢ㄧ殑鏁版嵁搴撶殑鐗堟湰鏄?.5.20<br /><a >http://www.oracle.com/technology/software/products/berkeley-db/htdocs/popup/db/4.5.20/db-msi.html</a></p> <p>鍦ㄤ粬浠殑涓婚〉涓婃湁涓変釜鐗堟湰鐨凚erkeley DB涓嬭澆銆?br /><a >http://www.oracle.com/technology/global/cn/products/berkeley-db/index.html</a><br />鏂板唴瀹?<br />聽<br />Berkeley DB 鐗堟湰 4.5銆璇ユ柊鐗堟湰鐜板湪鏀寔澶氱増鏈茍鍙戞帶鍒躲侀拡瀵瑰鍒剁幆澧冪殑涓嶆柇鍗囩駭浠ュ強涓涓緗殑澶嶅埗妗嗘灦鏉ョ畝鍖栭珮鍙敤鎬у簲鐢ㄧ▼搴忕殑寮鍙戙?<br />鏈鏂幫紒 Berkeley DB Java 鐗堢増鏈?3.1銆璇ユ柊鐗堟湰鏀寔鐩存帴鎸佷箙灞?(DPL)銆佷嬌鐢?Java 鎵規敞鐨?EJB 鏍峰紡鐨?API 浠ュ強 DPL 綾葷殑妯″紡榪涘寲銆?<br />鏂扮殑 Berkeley DB 璁哄潧宸茬粡寮鏀鵑拡瀵?Berkeley DB銆丅erkeley DB 楂樺彲鐢ㄦэ紙澶嶅埗錛夈丅erkeley DB Java 鐗堜互鍙?Berkeley DB XML 鐨勬柊 OTN 璁哄潧鐜板凡闈㈠悜 OTN 鎴愬憳寮鏀俱傛棤璁烘偍鏄垵瀛﹁呰繕鏄釜涓ソ鎵嬶紝閮藉彲浠ラ氳繃榪欎簺璁哄潧榪涘叆鎴戜滑褰㈠紡澶氭牱銆佸唴瀹逛赴瀵岀殑浜掑姩紺懼尯銆?</p> <p>Oracle Berkeley DB銆丅erkeley DB Java 鐗?鍜?Berkeley DB XML 閮芥槸寮鏀炬簮浠g爜寮鍙戜漢鍛樻暟鎹簱錛堝晢鐢ㄨ鍙篃鎻愪緵錛夛紝榪欎簺鏁版嵁搴撳彲涓哄紑鍙戜漢鍛樻彁渚涘揩閫熴佸彲闈犮佹湰鍦扮殑鎸佷箙鎬э紝鑰岀鐞嗚礋鎷呭緢灝戞垨鏍規湰娌℃湁銆侭erkeley DB 浣滀負宓屽叆寮忔暟鎹簱閮ㄧ講鍦ㄥ簲鐢ㄧ▼搴忓眰錛屼負涓嶉渶瑕?SQL 鐨勫簲鐢ㄧ▼搴忎嬌鐢ㄦ儏褰㈡彁渚涢珮鎬ц兘銆佸彲闈犳с佸彲浼哥緝鎬т互鍙婂彲鐢ㄦс?/p> <p align="right">鍦╳indows涓嬫湁setup鐨勫畨瑁呭寘銆傛垜浠彲浠ョ洿鎺ュ畨瑁呰繖涓祵鍏ュ紡鐨勬暟鎹簱銆?br />鍏蜂綋鐨勫紑鍙戝彲浠ョ洿鎺ョ湅鍦ㄥ畨瑁呯洰褰曚笅鐨勬枃妗c?br /><br />[Sword.Hell]</p> <img src ="http://www.shnenglu.com/swordhell/aggbug/16412.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/swordhell/" target="_blank">Sword.Hell blog</a> 2006-12-14 10:23 <a href="http://www.shnenglu.com/swordhell/articles/16412.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>Berkeley DB姒傝堪(杞?)http://www.shnenglu.com/swordhell/articles/16411.htmlSword.Hell blogSword.Hell blogThu, 14 Dec 2006 02:22:00 GMThttp://www.shnenglu.com/swordhell/articles/16411.htmlhttp://www.shnenglu.com/swordhell/comments/16411.htmlhttp://www.shnenglu.com/swordhell/articles/16411.html#Feedback0http://www.shnenglu.com/swordhell/comments/commentRss/16411.htmlhttp://www.shnenglu.com/swordhell/services/trackbacks/16411.html
[杞澆]寮婧愬祵鍏ュ紡鏁版嵁搴揃erkeley DB
寮婧愬祵鍏ュ紡鏁版嵁搴揃erkeley DB
浣滆咃細鑲栨枃楣?鍙戞枃鏃墮棿錛?004.04.09

鍍廙ySQL榪欑被鍩轟簬C/S緇撴瀯鐨勫叧緋誨瀷鏁版嵁搴撶郴緇熻櫧鐒朵唬琛ㄧ潃鐩墠鏁版嵁搴撳簲鐢ㄧ殑涓繪祦錛屼絾鍗村茍涓嶈兘婊¤凍鎵鏈夊簲鐢ㄥ満鍚堢殑闇瑕併傛湁鏃舵垜浠渶瑕佺殑鍙兘鍙槸涓涓畝鍗曠殑鍩轟簬紓佺洏鏂囦歡鐨勬暟鎹簱緋葷粺銆傝繖鏍蜂笉浠呭彲浠ラ伩鍏嶅畨瑁呭簽澶х殑鏁版嵁搴撴湇鍔″櫒錛岃屼笖榪樺彲浠ョ畝鍖栨暟鎹簱搴旂敤紼嬪簭鐨勮璁°侭erkeley DB姝f槸鍩轟簬榪欐牱鐨勬濇兂鎻愬嚭鏉ョ殑銆?

Berkeley DB綆浠?

Berkeley DB鏄竴涓紑鏀炬簮浠g爜鐨勫唴宓屽紡鏁版嵁搴撶鐞嗙郴緇燂紝鑳藉涓哄簲鐢ㄧ▼搴忔彁渚涢珮鎬ц兘鐨勬暟鎹鐞嗘湇鍔°傚簲鐢ㄥ畠紼嬪簭鍛樺彧闇瑕佽皟鐢ㄤ竴浜涚畝鍗曠殑API灝卞彲浠ュ畬鎴愬鏁版嵁鐨勮闂拰綆$悊銆備笌甯哥敤鐨勬暟鎹簱綆$悊緋葷粺錛堝MySQL鍜孫racle絳夛級鏈夋墍涓嶅悓錛屽湪Berkeley DB涓茍娌℃湁鏁版嵁搴撴湇鍔″櫒鐨勬蹇點傚簲鐢ㄧ▼搴忎笉闇瑕佷簨鍏堝悓鏁版嵁搴撴湇鍔″緩绔嬭搗緗戠粶榪炴帴錛岃屾槸閫氳繃鍐呭祵鍦ㄧ▼搴忎腑鐨凚erkeley DB鍑芥暟搴撴潵瀹屾垚瀵規暟鎹殑淇濆瓨銆佹煡璇€佷慨鏀瑰拰鍒犻櫎絳夋搷浣溿?

Berkeley DB涓鴻澶氱紪紼嬭璦鎻愪緵浜嗗疄鐢ㄧ殑API鎺ュ彛錛屽寘鎷珻銆丆++銆丣ava銆丳erl銆乀cl銆丳ython鍜孭HP絳夈傛墍鏈夊悓鏁版嵁搴撶浉鍏崇殑鎿嶄綔閮界敱Berkeley DB鍑芥暟搴撹礋璐g粺涓瀹屾垚銆傝繖鏍鋒棤璁烘槸緋葷粺涓殑澶氫釜榪涚▼錛屾垨鑰呮槸鐩稿悓榪涚▼涓殑澶氫釜綰跨▼錛岄兘鍙互鍦ㄥ悓涓鏃墮棿璋冪敤璁塊棶鏁版嵁搴撶殑鍑芥暟銆傝屽簳灞傜殑鏁版嵁鍔犻攣銆佷簨鍔℃棩蹇楀拰瀛樺偍綆$悊絳夐兘鍦˙erkeley DB鍑芥暟搴撲腑瀹炵幇銆傚畠浠搴旂敤紼嬪簭鏉ヨ鏄畬鍏ㄩ忔槑鐨勩備織璇濊錛氣滈夯闆铏藉皬浜旇剰淇卞叏銆傗滲erkeley DB鍑芥暟搴撴湰韜櫧鐒跺彧鏈?00KB宸﹀彸錛屼絾鍗磋兘澶熺敤鏉ョ鐞嗗杈?56TB鐨勬暟鎹紝騫朵笖鍦ㄨ澶氭柟闈㈢殑鎬ц兘榪樿兘澶熷悓鍟嗕笟綰х殑鏁版嵁搴撶郴緇熺浉鎶楄 銆傚氨鎷垮鏁版嵁鐨勫茍鍙戞搷浣滄潵璇達紝Berkeley DB鑳藉寰堣交鏉懼湴搴斾粯鍑犲崈涓敤鎴峰悓鏃惰闂悓涓涓暟鎹簱鐨勬儏鍐點傛澶栵紝濡傛灉鎯沖湪璧勬簮鍙楅檺鐨勫祵鍏ュ紡緋葷粺涓婅繘琛屾暟鎹簱綆$悊錛孊erkeley DB鍙兘灝辨槸鎯熶竴姝g‘鐨勯夋嫨浜嗐?

Berkeley DB浣滀負涓縐嶅祵鍏ュ紡鏁版嵁搴撶郴緇熷湪璁稿鏂歸潰鏈夌潃鐙壒鐨勪紭鍔褲傞鍏堬紝鐢變簬鍏跺簲鐢ㄧ▼搴忓拰鏁版嵁搴撶鐞嗙郴緇熻繍琛屽湪鐩稿悓鐨勮繘紼嬬┖闂村綋涓紝榪涜鏁版嵁鎿嶄綔鏃跺彲浠ラ伩鍏嶇箒鐞愮殑榪涚▼闂撮氫俊錛屽洜姝よ楄垂鍦ㄩ氫俊涓婄殑寮閿鑷劧涔熷氨闄嶄綆鍒頒簡鏋佷綆紼嬪害銆傚叾嬈★紝Berkeley DB浣跨敤綆鍗曠殑鍑芥暟璋冪敤鎺ュ彛鏉ュ畬鎴愭墍鏈夌殑鏁版嵁搴撴搷浣滐紝鑰屼笉鏄湪鏁版嵁搴撶郴緇熶腑緇忓父鐢ㄥ埌鐨凷QL璇█銆傝繖鏍峰氨閬垮厤浜嗗緇撴瀯鍖栨煡璇㈣璦榪涜瑙f瀽鍜屽鐞嗘墍闇鐨勫紑閿銆?

鍩烘湰姒傚康

Berkeley DB綆鍖栦簡鏁版嵁搴撶殑鎿嶄綔妯″紡錛屽悓鏃跺紩鍏ヤ簡涓浜涙柊鐨勫熀鏈蹇碉紝浠庤屼嬌寰楄闂拰綆$悊鏁版嵁搴撳彉寰楃浉瀵圭畝鍗曡搗鏉ャ傚湪浣跨敤Berkeley DB鎻愪緵鐨勫嚱鏁板簱緙栧啓鏁版嵁搴撳簲鐢ㄧ▼搴忎箣鍓嶏紝鏈夊繀瑕佸厛浜嗚В浠ヤ笅榪欎簺鍩烘湰姒傚康銆?

鍏抽敭瀛楀拰鏁版嵁

鍏抽敭瀛楋紙Key錛夊拰鏁版嵁錛圖ata錛夋槸Berkeley DB鐢ㄦ潵榪涜鏁版嵁搴撶鐞嗙殑鍩虹錛岀敱榪欎袱鑰呮瀯鎴愮殑Key/Data瀵癸紙瑙佽〃1錛夌粍鎴愪簡鏁版嵁搴撲腑鐨勪竴涓熀鏈粨鏋勫崟鍏冿紝鑰屾暣涓暟鎹簱瀹為檯涓婂氨鏄敱璁稿榪欐牱鐨勭粨鏋勫崟鍏冩墍鏋勬垚鐨勩傞氳繃浣跨敤榪欑鏂瑰紡錛屽紑鍙戜漢鍛樺湪浣跨敤Berkeley DB鎻愪緵鐨凙PI鏉ヨ闂暟鎹簱鏃訛紝鍙渶鎻愪緵鍏抽敭瀛楀氨鑳藉璁塊棶鍒扮浉搴旂殑鏁版嵁銆?

Key Data聽
sport football
Fruit orange
Drink beer


琛? Key/Data瀵?

濡傛灉鎯沖皢絎竴琛屼腑鐨勨渟port鈥濆拰鈥渇ootball鈥濅繚瀛樺埌Berkeley DB鏁版嵁搴撲腑錛屽彲浠ヨ皟鐢˙erkeley DB鍑芥暟搴撴彁渚涚殑鏁版嵁淇濆瓨鎺ュ彛銆傛鏃垛渟port鈥濆拰鈥渇ootball鈥濆皢鍒嗗埆褰撴垚鍏抽敭瀛楀拰鏁版嵁鏉ョ湅寰呫備箣鍚庡鏋滈渶瑕佷粠鏁版嵁搴撲腑媯绱㈠嚭璇ユ暟鎹紝鍙互鐢ㄢ渟port鈥濅綔涓哄叧閿瓧榪涜鏌ヨ銆傛鏃禕erkeley DB鎻愪緵鐨勬帴鍙e嚱鏁頒細榪斿洖涓庝箣瀵瑰簲鐨勬暟鎹渇ootball鈥濄?

鍏抽敭瀛楀拰鏁版嵁鍦˙erkeley DB涓兘鏄敤涓涓悕涓篋BT鐨勭畝鍗曠粨鏋勬潵琛ㄧず鐨勩傚疄闄呬笂涓よ呴兘鍙互鏄換鎰忛暱搴︾殑浜岃繘鍒舵暟鎹紝鑰孌BT鐨勪綔鐢ㄤ富瑕佹槸淇濆瓨鐩稿簲鐨勫唴瀛樺湴鍧鍙婂叾闀垮害錛屽叾緇撴瀯濡備笅鎵紺猴細

typedef struct {
聽 void *data;
聽 u_int32_t size;
聽 u_int32_t ulen;
聽 u_int32_t dlen;
聽 u_int32_t doff;
聽 u_int32_t flags;
} DBT;

鍦ㄤ嬌鐢˙erkeley DB榪涜鏁版嵁綆$悊鏃訛紝緙虹渷鎯呭喌涓嬫槸涓涓叧閿瓧瀵瑰簲浜庝竴涓暟鎹紝浣嗕簨瀹炰笂涔熷彲浠ュ皢鏁版嵁搴撻厤緗垚涓涓叧閿瓧瀵瑰簲浜庡涓暟鎹?

瀵硅薄鍙ユ焺

鍦˙erkeley DB鍑芥暟搴撳畾涔夌殑澶у鏁板嚱鏁伴兘閬靛驚鍚屾牱鐨勮皟鐢ㄥ師鍒欙細棣栧厛鍒涘緩鏌愪釜緇撴瀯錛岀劧鍚庡啀璋冪敤璇ョ粨鏋勪腑鐨勬煇浜涙柟娉曘備粠紼嬪簭璁捐鐨勮搴︽潵璁詫紝榪欎竴鐐瑰悓闈㈠悜瀵硅薄鐨勮璁″師鍒欐槸闈炲父綾諱技鐨勶紝鍗沖厛鍒涘緩鏌愪釜瀵硅薄鐨勪竴涓疄渚嬶紝鐒跺悗鍐嶈皟鐢ㄨ瀹炰緥鐨勬煇浜涙柟娉曘傛鍥犲姝わ紝Berkeley DB寮曞叆浜嗗璞″彞鏌勭殑姒傚康鏉ヨ〃紺哄疄渚嬪寲鍚庣殑緇撴瀯錛屽茍涓斿皢緇撴瀯涓殑鎴愬憳鍑芥暟縐頒負璇ュ彞鏌勭殑鏂規硶銆?

瀵硅薄鍙ユ焺鐨勫紩鍏ヤ嬌寰楃▼搴忓憳鑳藉瀹屽叏鍑熼潰鍚戝璞$殑鎬濇兂錛屾潵瀹屾垚瀵笲erkeley DB鏁版嵁搴撶殑璁塊棶鍜屾搷浣滐紝鍗充嬌褰撳墠浣跨敤鐨勬槸鍍廋榪欐牱鐨勭粨鏋勫寲璇█銆備緥濡傦紝瀵逛簬鎵撳紑鏁版嵁搴撶殑鎿嶄綔鏉ヨ錛屽彲浠ヨ皟鐢―B鐨勫璞″彞鏌勬墍鎻愪緵鐨刼pen鍑芥暟錛屽叾鍘熷瀷濡備笅鎵紺猴細

int DB->open(DB *db, DB_TXN *txnid, const char *file,
const char *database, DBTYPE type, u_int32_t flags, int mode);

閿欒澶勭悊

瀵逛簬浠諱綍涓涓嚱鏁板簱鏉ヨ錛屽浣曞閿欒榪涜緇熶竴鐨勫鐞嗛兘鏄渶瑕佽冭檻鐨勯棶棰樸侭erkeley DB鎻愪緵鐨勬墍鏈夊嚱鏁伴兘閬靛驚鍚屾牱鐨勯敊璇鐞嗗師鍒欙紝鍗沖嚱鏁版垚鍔熸墽琛屽悗榪斿洖闆訛紝鍚﹀垯鐨勮瘽鍒欒繑鍥為潪闆跺箋?

瀵逛簬緋葷粺閿欒錛堝紓佺洏絀洪棿涓嶈凍鍜岃闂潈闄愪笉澶熺瓑錛夛紝榪斿洖鐨勬槸涓涓爣鍑嗙殑鍊?鑰屽浜庨潪緋葷粺閿欒錛岃繑鍥炵殑鍒欐槸涓涓壒瀹氱殑閿欒緙栫爜銆備緥濡傦紝濡傛灉鍦ㄦ暟鎹簱涓病鏈変笌鏌愪釜鐗瑰畾鍏抽敭瀛楁墍瀵瑰簲鐨勬暟鎹紝閭d箞鍦ㄩ氳繃璇ュ叧閿瓧媯绱㈡暟鎹椂灝變細鍑虹幇閿欒銆傛鏃跺嚱鏁扮殑榪斿洖鍊煎皢鏄疍B_NOTFOUND錛岃〃紺烘墍璇鋒眰鐨勫叧閿瓧騫舵病鏈夊湪鏁版嵁搴撲腑鍑虹幇銆傛墍鏈夋爣鍑嗙殑errno鍊奸兘鏄ぇ浜庨浂鐨勶紝鑰岀敱Berkeley DB瀹氫箟鐨勭壒孌婇敊璇紪鐮佸垯閮芥槸灝忎簬闆剁殑銆?

瑕佹眰紼嬪簭鍛樿浣忔墍鏈夌殑閿欒浠e彿鏃笉鐜板疄涔熸病鏈変粈涔堝疄闄呮剰涔夛紝鍥犱負Berkeley DB鎻愪緵浜嗙浉搴旂殑鍑芥暟鏉ヨ幏寰楅敊璇唬鍙鋒墍瀵瑰簲鐨勯敊璇弿榪般備竴鏃︽湁閿欒鍙戠敓錛屽彧闇棣栧厛璋冪敤db_strerror()鍑芥暟鏉ヨ幏寰楅敊璇弿榪頒俊鎭紝鐒跺悗鍐嶈皟鐢―B->err()鎴朌B->errx()灝卞彲浠ュ緢杞繪澗鍦拌緭鍑烘牸寮忓寲鍚庣殑閿欒淇℃伅銆偮?寮婧愬祵鍏ュ紡鏁版嵁搴揃erkeley DB(2)聽
浣滆咃細鑲栨枃楣?鍙戞枃鏃墮棿錛?004.04.09

鎺ヤ笂涓綃囷細寮婧愮殑宓屽叆寮忔暟鎹簱Berkeley DB(1)

搴旂敤緇熶竴鐨勭紪紼嬫帴鍙?

浣跨敤Berkeley DB鎻愪緵鐨勫嚱鏁版潵榪涜鏁版嵁搴撶殑璁塊棶鍜岀鐞嗗茍涓嶅鏉傦紝鍦ㄥぇ澶氭暟鍦哄悎涓嬪彧闇鎸夌収緇熶竴鐨勬帴鍙f爣鍑嗚繘琛岃皟鐢ㄥ氨鍙互瀹屾垚鏈鍩烘湰鐨勬搷浣溿?

鎵撳紑鏁版嵁搴?

鎵撳紑鏁版嵁搴撻氬父瑕佸垎涓ゆ榪涜錛氶鍏堣皟鐢╠b_create()鍑芥暟鏉ュ垱寤篋B緇撴瀯鐨勪竴涓疄渚嬶紝鐒跺悗鍐嶈皟鐢―B->open()鍑芥暟鏉ュ畬鎴愮湡姝g殑鎵撳紑鎿嶄綔銆侭erkeley DB灝嗘墍鏈夊鏁版嵁搴撶殑鎿嶄綔閮藉皝瑁呭湪鍚嶄負DB鐨勭粨鏋勪腑銆俤b_create()鍑芥暟鐨勪綔鐢ㄥ氨鏄垱寤轟竴涓緇撴瀯錛屽叾鍘熷瀷濡備笅鎵紺猴細

typedef struct__db DB;
int db_create(DB **dbp, DB_ENV *dbenv, u_int32_t flags);

灝嗙鐩樹笂淇濆瓨鐨勬枃浠朵綔涓烘暟鎹簱鎵撳紑鏄敱DB->open()鍑芥暟鏉ュ畬鎴愮殑錛屽叾鍘熷瀷濡備笅鎵紺猴細

int DB->open(DB *db, DB_TXN *txnid, const char *file,
const char *database, DBTYPE type, u_int32_t flags, int mode);

涓嬮潰榪欐浠g爜紺鴻寖浜嗗浣曞垱寤篋B瀵硅薄鍙ユ焺鍙婂浣曟墦寮鏁版嵁搴撴枃浠訛細

#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <db.h>
#define DATABASE "demo.db"
/* 浠ヤ笅紼嬪簭浠g爜鐨勭▼搴忓ご鍚屾錛?
int main()
{ DB *dbp;
int ret;
if ((ret = db_create(&dbp, NULL, 0)) != 0) {
聽 fprintf(stderr, "db_create: %s\n", db_strerror(ret));
聽 exit (1);
}
if ((ret = dbp->open(dbp, NULL, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
聽 dbp->err(dbp, ret, "%s", DATABASE);
聽 exit (1);
}
}

浠g爜棣栧厛璋冪敤db_create()鍑芥暟鏉ュ垱寤轟竴涓狣B瀵硅薄鍙ユ焺銆傚彉閲廳bp鍦ㄨ皟鐢ㄦ垚鍔熷悗灝嗘垚涓烘暟鎹簱鍙ユ焺錛岄氳繃瀹冨彲浠ュ畬鎴愬搴曞眰鏁版嵁搴撶殑閰嶇疆鎴栬闂傛帴涓嬪幓璋冪敤DB->open()鍑芥暟鎵撳紑鏁版嵁搴撴枃浠訛紝鍙傛暟鈥淒ATABASE鈥濇寚鏄庡搴旂殑紓佺洏鏂囦歡鍚嶄負demo.db錛涘弬鏁扳淒B_BTREE鈥濊〃紺烘暟鎹簱搴曞眰浣跨敤鐨勬暟鎹粨鏋勬槸B鏍戯紱鑰屽弬鏁扳淒B_CREATE鈥濆拰鈥?664鈥濆垯琛ㄦ槑褰撴暟鎹簱鏂囦歡涓嶅瓨鍦ㄦ椂鍒涘緩涓涓柊鐨勬暟鎹簱鏂囦歡錛屽茍涓斿皢璇ユ枃浠剁殑灞炴у艱緗負0664銆?

閿欒澶勭悊鏄湪鎵撳紑鏁版嵁搴撴椂蹇呴』鐨勪緥琛屾鏌ワ紝榪欏彲浠ラ氳繃璋冪敤DB->err()鍑芥暟鏉ュ畬鎴愩傚叾涓弬鏁扳渞et鈥濇槸鍦ㄨ皟鐢˙erkeley DB鍑芥暟鍚庤繑鍥炵殑閿欒浠g爜錛屽叾浣欏弬鏁板垯鐢ㄤ簬鏄劇ず緇撴瀯鍖栫殑閿欒淇℃伅銆?

娣誨姞鏁版嵁

鍚態erkeley DB鏁版嵁搴撲腑娣誨姞鏁版嵁鍙互閫氳繃璋冪敤DB->put()鍑芥暟鏉ュ畬鎴愶紝鍏跺師鍨嬪涓嬫墍紺猴細

int DB->put(DB *db, DB_TXN *txnid, DBT *key, DBT *data, u_int32_t flags);

涓嬮潰榪欐浠g爜紺鴻寖浜嗗浣曞悜鏁版嵁搴撲腑娣誨姞鏂扮殑鏁版嵁錛?

int main()
{ DB *dbp;
DBT key, data;
int ret;
if ((ret = db_create(&dbp, NULL, 0)) != 0) {
聽 fprintf(stderr, "db_create: %s\n", db_strerror(ret));
聽 exit (1);
}
if ((ret = dbp->open(dbp,
聽 NULL, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
聽 dbp->err(dbp, ret, "%s", DATABASE);
聽 exit (1);
}
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
key.data = "sport";
key.size = sizeof("sport");
data.data = "football";
data.size = sizeof("football");
if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
聽 printf("db: %s: key stored.\n", (char *)key.data);
else
聽 dbp->err(dbp, ret, "DB->put");
}

浠g爜棣栧厛澹版槑浜嗕袱涓狣BT緇撴瀯鍙橀噺錛屽茍鍒嗗埆鐢ㄥ瓧絎︿覆鈥渟port鈥濆拰鈥渇ootball鈥濊繘琛屽~鍏呫傚畠浠殢鍚庝綔涓哄叧閿瓧鍜屾暟鎹紶閫掔粰鐢ㄦ潵娣誨姞鏁版嵁鐨凞B->put()鍑芥暟銆侱BT緇撴瀯鍑犱箮浼氬湪鎵鏈夊悓鏁版嵁璁塊棶鐩稿叧鐨勫嚱鏁頒腑琚敤鍒般?

鍦ㄥ悜鏁版嵁搴撲腑娣誨姞鏁版嵁鏃訛紝濡傛灉緇欏畾鐨勫叧閿瓧宸茬粡瀛樺湪錛屽ぇ澶氭暟搴旂敤浼氬浜庡凡緇忓瓨鍦ㄧ殑鏁版嵁閲囩敤瑕嗙洊鍘熷垯銆備篃灝辨槸璇達紝濡傛灉鏁版嵁搴撲腑宸茬粡淇濆瓨浜嗕竴涓渟port/basketball鈥濆錛屽啀嬈¤皟鐢―B->put()鍑芥暟娣誨姞涓涓渟port/football鈥濆錛岄偅涔堝厛鍓嶄繚瀛樼殑閭d簺鏁版嵁灝嗕細琚鐩栥備絾Berkeley DB鍏佽鍦ㄨ皟鐢―B->put()鍑芥暟鏃舵寚瀹氬弬鏁扳淒B_NOOVERWRITE鈥濓紝澹版槑涓嶅鏁版嵁搴撲腑宸茬粡瀛樺湪鐨勬暟鎹繘琛岃鐩栵紝鍏朵唬鐮佸涓嬶細

if ((ret = dbp->put(dbp, NULL, &key, &data, DB_NOOVERWRITE)) == 0)
printf("db: %s: key stored.\n", (char *)key.data);
else
dbp->err(dbp, ret, "DB->put");

涓鏃︾粰鍑衡淒B_NOOVERWRITE鈥濇爣璁幫紝濡傛灉DB->put()鍑芥暟鍦ㄦ墽琛岃繃紼嬩腑鍙戠幇緇欏嚭鐨勫叧閿瓧鍦ㄦ暟鎹簱涓凡緇忓瓨鍦ㄤ簡錛屽氨鏃犳硶鎴愬姛鍦版妸璇ey/Data瀵規坊鍔犲埌鏁版嵁搴撲腑錛屼簬鏄皢榪斿洖閿欒浠e彿鈥淒B_KEYEXIST鈥濄?

媯绱㈡暟鎹?

浠嶣erkeley DB鏁版嵁搴撲腑媯绱㈡暟鎹彲浠ラ氳繃璋冪敤DB->get()鍑芥暟鏉ュ畬鎴愶紝鍏跺師鍨嬪涓嬫墍紺猴細

int DB->get(DB *db, DB_TXN *txnid, DBT *key, DBT *data, u_int32_t flags);

涓嬮潰榪欐浠g爜紺鴻寖浜嗗浣曚粠鏁版嵁搴撲腑媯绱㈠嚭鎵闇鐨勬暟鎹細

int main()
{ DB *dbp;
DBT key, data;
int ret;
if ((ret = db_create(&dbp, NULL, 0)) != 0) {
聽 fprintf(stderr, "db_create: %s\n", db_strerror(ret));
聽 exit (1);
}
if ((ret = dbp->open(dbp,
聽 NULL, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
聽 dbp->err(dbp, ret, "%s", DATABASE);
聽 exit (1);
}
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
key.data = "sport";
key.size = sizeof("sport");
if ((ret = dbp->get(dbp, NULL, &key, &data, 0)) == 0)
聽 printf("db: %s: key retrieved: data was %s.\n",
聽聽 (char *)key.data, (char *)data.data);
else
聽 dbp->err(dbp, ret, "DB->get");
}

浠g爜鍚屾牱澹版槑浜嗕袱涓狣BT緇撴瀯鍙橀噺錛屽茍涓旇皟鐢╩emset()鍑芥暟瀵瑰畠浠殑鍐呭娓呯┖銆傝櫧鐒禕erkeley DB騫朵笉寮哄埗瑕佹眰鍦ㄨ繘琛屾暟鎹搷浣滀箣鍓嶅厛娓呯┖瀹冧滑錛屼絾鍑轟簬鎻愰珮浠g爜璐ㄩ噺鑰冭檻榪樻槸寤鴻鍏堣繘琛屾竻絀烘搷浣溿傚湪榪涜鏁版嵁媯绱㈡椂錛屽DB->get()鍑芥暟鐨勮繑鍥炲艱繘琛屽鐞嗘槸蹇呬笉鍙皯鐨勶紝鍥犱負瀹冩惡甯︾潃媯绱㈡搷浣滄槸鍚︽垚鍔熷畬鎴愮瓑淇℃伅銆備笅闈㈠垪鍑虹殑鏄疍B->get()鍑芥暟鐨勮繑鍥炲鹼細

鈼?0 鍑芥暟璋冪敤鎴愬姛錛屾寚瀹氱殑鍏抽敭瀛楄鎵懼埌錛?

鈼?DB_NOTFOUND 鍑芥暟璋冪敤鎴愬姛錛屼絾鎸囧畾鐨勫叧閿瓧鏈鎵懼埌錛?

鈼嗗ぇ浜? 鍑芥暟璋冪敤澶辮觸錛屽彲鑳藉嚭鐜頒簡緋葷粺閿欒銆?

鍒犻櫎鏁版嵁

浠嶣erkeley DB鏁版嵁搴撲腑鍒犻櫎鏁版嵁鍙互閫氳繃璋冪敤DB->del()鍑芥暟鏉ュ畬鎴愶紝鍏跺師鍨嬪涓嬫墍紺猴細

int DB->del(DB *db, DB_TXN *txnid, DBT *key, u_int32_t flags);

涓嬮潰榪欐浠g爜紺鴻寖浜嗗浣曚粠鏁版嵁搴撲腑鍒犻櫎鏁版嵁錛?

int main()
{ DB *dbp;
DBT key;
int ret;
if ((ret = db_create(&dbp, NULL, 0)) != 0) {
聽 fprintf(stderr, "db_create: %s\n", db_strerror(ret));
聽 exit (1);
}
if ((ret = dbp->open(dbp,
聽 NULL, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
聽 dbp->err(dbp, ret, "%s", DATABASE);
聽 exit (1);
}
memset(&key, 0, sizeof(key));
key.data = "sport";
key.size = sizeof("sport");
if ((ret = dbp->del(dbp, NULL, &key, 0)) == 0)
聽 printf("db: %s: key was deleted.\n", (char *)key.data);
else
聽 dbp->err(dbp, ret, "DB->del");
}

鍒犻櫎鏁版嵁鍙渶緇欏嚭鐩稿簲鐨勫叧閿瓧錛屼笉鐢ㄦ寚鏄庝笌涔嬪搴旂殑鏁版嵁銆?

鍏抽棴鏁版嵁搴?

瀵逛簬涓嬈″畬鏁寸殑鏁版嵁搴撴搷浣滆繃紼嬫潵璇達紝鍏抽棴鏁版嵁搴撴槸涓嶅彲鎴栫己鐨勪竴涓幆鑺傘傝繖鏄洜涓築erkeley DB闇瑕佷緷璧栦簬緋葷粺搴曞眰鐨勭紦鍐叉満鍒訛紝涔熷氨鏄鍙湁鍦ㄦ暟鎹簱姝e父鍏抽棴鐨勬椂鍊欙紝淇敼鍚庣殑鏁版嵁鎵嶆湁鍙兘鍏ㄩ儴鍐欏埌紓佺洏涓婏紝鍚屾椂瀹冩墍鍗犵敤鐨勮祫婧愪篃鎵嶈兘鐪熸琚叏閮ㄩ噴鏀俱傚叧闂暟鎹簱鐨勬搷浣滄槸閫氳繃璋冪敤DB->close()鍑芥暟鏉ュ畬鎴愮殑錛屽叾鍘熷瀷濡備笅鎵紺猴細

int DB->close(DB *db, u_int32_t flags);

涓嬮潰榪欐浠g爜紺鴻寖浜嗗浣曞湪闇瑕佺殑鏃跺欏叧闂暟鎹簱錛?

int main()
{ DB *dbp;
DBT key, data;
int ret, t_ret;
if ((ret = db_create(&dbp, NULL, 0)) != 0) {
聽 fprintf(stderr, "db_create: %s\n", db_strerror(ret));
聽 exit (1);
}
if ((ret = dbp->open(dbp,
聽 NULL, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
聽 dbp->err(dbp, ret, "%s", DATABASE);
聽 goto err;
}
memset(&key, 0, sizeof(key));
memset(&data, 0, sizeof(data));
key.data = "sport";
key.size = sizeof("sport");
if ((ret = dbp->get(dbp, NULL, &key, &data, 0)) == 0)
聽 printf("db: %s: key retrieved: data was %s.\n",
聽聽 (char *)key.data, (char *)data.data);
else
聽 dbp->err(dbp, ret, "DB->get");
if ((t_ret = dbp->close(dbp, 0)) != 0 && ret == 0)
聽 ret = t_ret;
exit(ret);
}

灝忕粨

Berkeley DB榪欎釜宓屽叆寮忔暟鎹簱緋葷粺浣跨敤闈炲父綆鍗曘傚畠娌℃湁鏁版嵁搴撴湇鍔″櫒鐨勬蹇碉紝涔熶笉闇瑕佸鏉傜殑SQL璇彞錛屾墍鏈夊鏁版嵁鐨勬搷浣滃拰綆$悊閮藉彲浠ラ氳繃鍑芥暟璋冪敤鏉ュ畬鎴愶紝闈炲父閫傚悎浜庨偅浜涢渶瑕佸鏁版嵁榪涜綆鍗曠鐞嗙殑搴旂敤鍦哄悎銆?



]]>
Berkeley DB姒傝堪(杞?)http://www.shnenglu.com/swordhell/articles/16410.htmlSword.Hell blogSword.Hell blogThu, 14 Dec 2006 02:21:00 GMThttp://www.shnenglu.com/swordhell/articles/16410.htmlhttp://www.shnenglu.com/swordhell/comments/16410.htmlhttp://www.shnenglu.com/swordhell/articles/16410.html#Feedback1http://www.shnenglu.com/swordhell/comments/commentRss/16410.htmlhttp://www.shnenglu.com/swordhell/services/trackbacks/16410.html
鐨笢

聽聽聽 Berkeley DB鏄敱緹庡浗Sleepycat Software鍏徃寮鍙戠殑涓濂楀紑鏀炬簮鐮佺殑宓屽叆寮忔暟鎹簱鐨勭▼搴忓簱錛坉atabase library錛夛紝
瀹冧負搴旂敤紼嬪簭鎻愪緵鍙幾緙╃殑銆侀珮鎬ц兘鐨勩佹湁浜嬪姟淇濇姢鍔熻兘鐨勬暟鎹鐞嗘湇鍔°侭erkeley DB涓烘暟鎹殑瀛樺彇鍜岀鐞嗘彁渚涗簡涓緇?br />綆媧佺殑鍑芥暟璋冪敤API鎺ュ彛銆?/p>

聽聽聽 瀹冩槸涓涓粡鍏哥殑C-library妯″紡鐨則oolkit錛屼負紼嬪簭鍛樻彁渚涘箍娉涗赴瀵岀殑鍑芥暟闆嗭紝鏄負搴旂敤紼嬪簭寮鍙戣呮彁渚涘伐涓氱駭寮哄害鐨?br />鏁版嵁搴撴湇鍔¤岃璁$殑銆傚叾涓昏鐗圭偣濡備笅錛?/p>

聽聽聽 宓屽叆寮忥紙Embedded錛夛細瀹冪洿鎺ラ摼鎺ュ埌搴旂敤紼嬪簭涓紝涓庡簲鐢ㄧ▼搴忚繍琛屼簬鍚屾牱鐨勫湴鍧絀洪棿涓紝鍥犳錛屾棤璁烘槸鍦ㄧ綉緇滀笂涓嶅悓
璁$畻鏈轟箣闂磋繕鏄湪鍚屼竴鍙拌綆楁満鐨勪笉鍚岃繘紼嬩箣闂達紝鏁版嵁搴撴搷浣滃茍涓嶈姹傝繘紼嬮棿閫氳銆?/p>

聽聽聽 Berkeley DB涓哄縐嶇紪紼嬭璦鎻愪緵浜咥PI鎺ュ彛錛屽叾涓寘鎷珻銆丆++銆丣ava銆丳erl銆乀cl銆丳ython鍜孭HP錛屾墍鏈夌殑鏁版嵁搴撴搷浣?br />閮藉湪紼嬪簭搴撳唴閮ㄥ彂鐢熴傚涓繘紼嬶紝鎴栬呭悓涓榪涚▼鐨勫涓嚎紼嬪彲鍚屾椂浣跨敤鏁版嵁搴擄紝鏈夊鍚勮嚜鍗曠嫭浣跨敤錛屽簳灞傜殑鏈嶅姟濡傚姞閿併?br />浜嬪姟鏃ュ織銆佸叡浜紦鍐插尯綆$悊銆佸唴瀛樼鐞嗙瓑絳夐兘鐢辯▼搴忓簱閫忔槑鍦版墽琛屻?/p>

聽聽聽 杞諱究鐏墊椿錛圥ortable錛夛細瀹冨彲浠ヨ繍琛屼簬鍑犱箮鎵鏈夌殑UNIX鍜孡inux緋葷粺鍙婂叾鍙樼緋葷粺銆乄indows鎿嶄綔緋葷粺浠ュ強澶氱宓屽叆寮忓疄
鏃舵搷浣滅郴緇熶箣涓嬨傚畠鍦?2浣嶅拰64浣嶇郴緇熶笂鍧囧彲榪愯錛屽凡緇忚濂藉楂樼鐨勫洜鐗圭綉鏈嶅姟鍣ㄣ佸彴寮忔満銆佹帉涓婄數鑴戙佹満欏剁洅銆佺綉緇?br />浜ゆ崲鏈轟互鍙婂叾浠栦竴浜涘簲鐢ㄩ鍩熸墍閲囩敤銆備竴鏃erkeley DB琚摼鎺ュ埌搴旂敤紼嬪簭涓紝緇堢鐢ㄦ埛涓鑸牴鏈劅瑙変笉鍒版湁涓涓暟鎹簱
緋葷粺瀛樺湪銆?/p>

聽聽聽 鍙幾緙╋紙Scalable錛夛細榪欎竴鐐硅〃鐜板湪寰堝鏂歸潰銆侱atabase library鏈韓鏄緢綺劇畝鐨勶紙灝戜簬300KB鐨勬枃鏈┖闂達級錛屼絾瀹?br />鑳藉綆$悊瑙勬ā楂樿揪256TB鐨勬暟鎹簱銆傚畠鏀寔楂樺茍鍙戝害錛屾垚鍗冧笂涓囦釜鐢ㄦ埛鍙悓鏃舵搷綰靛悓涓涓暟鎹簱銆侭erkeley DB鑳戒互瓚沖灝?br />鐨勭┖闂村崰鐢ㄩ噺榪愯浜庢湁涓ユ牸綰︽潫鐨勫祵鍏ュ紡緋葷粺錛屼篃鍙互鍦ㄩ珮绔湇鍔″櫒涓婅楃敤鑻ュ共GB鐨勫唴瀛樺拰鑻ュ共TB鐨勭鐩樼┖闂淬?/p>

聽聽聽 Berkeley DB鍦ㄥ祵鍏ュ紡搴旂敤涓瘮鍏崇郴鏁版嵁搴撳拰闈㈠悜瀵硅薄鏁版嵁搴撹濂斤紝鏈変互涓嬩袱鐐瑰師鍥狅細
聽聽聽
聽聽聽 錛?錛夊洜涓烘暟鎹簱紼嬪簭搴撳悓搴旂敤紼嬪簭鍦ㄧ浉鍚岀殑鍦板潃絀洪棿涓繍琛岋紝鎵浠ユ暟鎹簱鎿嶄綔涓嶉渶瑕佽繘紼嬮棿鐨勯氳銆傚湪涓鍙版満鍣ㄧ殑
涓嶅悓榪涚▼闂存垨鍦ㄧ綉緇滀腑涓嶅悓鏈哄櫒闂磋繘琛岃繘紼嬮氳鎵鑺辮垂鐨勫紑閿錛岃榪滆繙澶т簬鍑芥暟璋冪敤鐨勫紑閿錛?/p>

聽聽聽 錛?錛夊洜涓築erkeley DB瀵規墍鏈夋搷浣滈兘浣跨敤涓緇凙PI鎺ュ彛錛屽洜姝や笉闇瑕佸鏌愮鏌ヨ璇█榪涜瑙f瀽錛屼篃涓嶇敤鐢熸垚鎵ц璁″垝錛?br />澶уぇ鎻愰珮浜嗚繍琛屾晥.


BerkeleyDB緋葷粺緇撴瀯


聽聽聽 Berkeley DB鐢變簲涓富瑕佺殑瀛愮郴緇熸瀯鎴?鍖呮嫭: 瀛樺彇綆$悊瀛愮郴緇熴佸唴瀛樻睜綆$悊瀛愮郴緇熴佷簨鍔″瓙緋葷粺銆侀攣瀛愮郴緇熶互鍙婃棩蹇楀瓙緋葷粺銆?br />鍏朵腑瀛樺彇綆$悊瀛愮郴緇熶綔涓築erkeley DB鏁版嵁搴撹繘紼嬪寘鍐呴儴鏍稿績緇勪歡錛岃屽叾浠栧瓙緋葷粺閮藉瓨鍦ㄤ簬Berkeley DB鏁版嵁搴撹繘紼嬪寘鐨勫閮ㄣ偮犅?

聽聽聽 姣忎釜瀛愮郴緇熸敮鎸佷笉鍚岀殑搴旂敤綰у埆銆?/p>

聽聽聽 1.鏁版嵁瀛樺彇瀛愮郴緇?br />聽聽聽 鏁版嵁瀛樺彇錛圓ccess Methods錛夊瓙緋葷粺涓哄垱寤哄拰璁塊棶鏁版嵁搴撴枃浠舵彁渚涗簡澶氱鏀寔銆侭erkeley DB鎻愪緵浜嗕互涓嬪洓縐嶆枃浠跺瓨鍌ㄦ柟娉曪細
鍝堝笇鏂囦歡銆丅鏍戙佸畾闀胯褰曪紙闃熷垪錛夊拰鍙橀暱璁板綍錛堝熀浜庤褰曞彿鐨勭畝鍗曞瓨鍌ㄦ柟寮忥級錛屽簲鐢ㄧ▼搴忓彲浠ヤ粠涓夋嫨鏈閫傚悎鐨勬枃浠剁粍緇囩粨鏋勩?br />紼嬪簭鍛樺垱寤鴻〃鏃跺彲浠ヤ嬌鐢ㄤ換鎰忎竴縐嶇粨鏋勶紝騫朵笖鍙互鍦ㄥ悓涓涓簲鐢ㄧ▼搴忎腑瀵逛笉鍚屽瓨鍌ㄧ被鍨嬬殑鏂囦歡榪涜娣峰悎鎿嶄綔銆?/p>

聽聽聽 鍦ㄦ病鏈変簨鍔$鐞嗙殑鎯呭喌涓嬶紝璇ュ瓙緋葷粺涓殑妯″潡鍙崟鐙嬌鐢紝涓哄簲鐢ㄧ▼搴忔彁渚涘揩閫熼珮鏁堢殑鏁版嵁瀛樺彇鏈嶅姟銆?br />鏁版嵁瀛樺彇瀛愮郴緇熼傜敤浜庝笉闇浜嬪姟鍙渶蹇熸牸寮忔枃浠惰闂殑搴旂敤銆?/p>

聽聽聽 2.鍐呭瓨姹犵鐞嗗瓙緋葷粺
聽聽聽 鍐呭瓨姹狅紙Memory pool錛夊瓙緋葷粺瀵笲erkeley DB鎵浣跨敤鐨勫叡浜紦鍐插尯榪涜鏈夋晥鐨勭鐞嗐傚畠鍏佽鍚屾椂璁塊棶鏁版嵁搴撶殑澶氫釜榪涚▼鎴栬?br />榪涚▼鐨勫涓嚎紼嬪叡浜竴涓珮閫熺紦瀛橈紝璐熻矗灝嗕慨鏀瑰悗鐨勯〉鍐欏洖鏂囦歡鍜屼負鏂拌皟鍏ョ殑欏靛垎閰嶅唴瀛樼┖闂淬?br />聽聽聽
聽聽聽 瀹冧篃鍙互鐙珛浜嶣erkeley DB緋葷粺涔嬪錛屽崟鐙搴旂敤紼嬪簭浣跨敤錛屼負鍏惰嚜宸辯殑鏂囦歡鍜岄〉鍒嗛厤鍐呭瓨絀洪棿銆?br />鍐呭瓨姹犵鐞嗗瓙緋葷粺閫傜敤浜庨渶瑕佺伒媧葷殑銆侀潰鍚戦〉鐨勩佺紦鍐茬殑鍏變韓鏂囦歡璁塊棶鐨勫簲鐢ㄣ?/p>

聽聽聽 3.浜嬪姟瀛愮郴緇?br />聽聽聽 浜嬪姟錛圱ransaction錛夊瓙緋葷粺涓築erkeley DB鎻愪緵浜嬪姟綆$悊鍔熻兘銆傚畠鍏佽鎶婁竴緇勫鏁版嵁搴撶殑淇敼鐪嬩綔涓涓師瀛愬崟浣嶏紝
榪欑粍鎿嶄綔瑕佷箞鍏ㄥ仛錛岃涔堝叏涓嶅仛銆傚湪榛樿鐨勬儏鍐典笅錛岀郴緇熷皢鎻愪緵涓ユ牸鐨凙CID浜嬪姟灞炴э紝浣嗘槸搴旂敤紼嬪簭鍙互閫夋嫨涓嶄嬌鐢ㄧ郴緇熸墍浣滅殑
闅旂淇濊瘉銆傝瀛愮郴緇熶嬌鐢ㄤ袱孌甸攣鎶鏈拰鍏堝啓鏃ュ織絳栫暐鏉ヤ繚璇佹暟鎹簱鏁版嵁鐨勬紜у拰涓鑷存с?/p>

聽聽聽 瀹冧篃鍙互琚簲鐢ㄧ▼搴忓崟鐙嬌鐢ㄦ潵瀵瑰叾鑷韓鐨勬暟鎹洿鏂拌繘琛屼簨鍔′繚鎶ゃ備簨鍔″瓙緋葷粺閫傜敤浜庨渶瑕佷簨鍔′繚璇佹暟鎹殑淇敼鐨勫簲鐢ㄣ?br />聽聽聽
聽聽聽 4.閿佸瓙緋葷粺
聽聽聽 閿侊紙Locking錛夊瓙緋葷粺涓築erkeley DB鎻愪緵閿佹満鍒訛紝涓虹郴緇熸彁渚涘鐢ㄦ埛璇誨彇鍜屽崟鐢ㄦ埛淇敼鍚屼竴瀵硅薄鐨勫叡浜帶鍒躲?br />鏁版嵁瀛樺彇瀛愮郴緇熷彲鍒╃敤璇ュ瓙緋葷粺鑾峰緱瀵歸〉鎴栬褰曠殑璇誨啓鏉冮檺錛涗簨鍔″瓙緋葷粺鍒╃敤閿佹満鍒舵潵瀹炵幇澶氫釜浜嬪姟鐨勫茍鍙戞帶鍒躲?br />聽聽聽
聽聽聽 璇ュ瓙緋葷粺涔熷彲琚簲鐢ㄧ▼搴忓崟鐙噰鐢ㄣ傞攣瀛愮郴緇熼傜敤浜庝竴涓伒媧葷殑銆佸揩閫熺殑銆佸彲璁劇疆鐨勯攣綆$悊鍣ㄣ?br />聽聽聽
聽聽聽 5.鏃ュ織瀛愮郴緇熉犅犅?
聽聽聽 鏃ュ織錛圠ogging錛夊瓙緋葷粺閲囩敤鐨勬槸鍏堝啓鏃ュ織鐨勭瓥鐣ワ紝鐢ㄤ簬鏀寔浜嬪姟瀛愮郴緇熻繘琛屾暟鎹仮澶嶏紝淇濊瘉鏁版嵁涓鑷存с?br />瀹冧笉澶у彲鑳借搴旂敤紼嬪簭鍗曠嫭浣跨敤錛屽彧鑳戒綔涓轟簨鍔″瓙緋葷粺鐨勮皟鐢ㄦā鍧椼?/p>

聽聽聽 浠ヤ笂鍑犻儴鍒嗘瀯鎴愪簡鏁翠釜Berkeley DB鏁版嵁搴撶郴緇熴傚悇閮ㄥ垎鐨勫叧緋誨涓嬪浘鎵紺猴細
聽聽聽
聽聽聽 鍦ㄨ繖涓ā鍨嬩腑錛屽簲鐢ㄧ▼搴忕洿鎺ヨ皟鐢ㄧ殑鏄暟鎹瓨鍙栧瓙緋葷粺鍜屼簨鍔$鐞嗗瓙緋葷粺錛岃繖涓や釜緋葷粺榪涜岃皟鐢ㄦ洿涓嬪眰鐨勫唴瀛樼鐞嗗瓙緋葷粺銆?br />閿佸瓙緋葷粺鍜屾棩蹇楀瓙緋葷粺銆?br />聽聽聽
聽聽聽 鐢變簬鍑犱釜瀛愮郴緇熺浉瀵規瘮杈冪嫭绔嬶紝鎵浠ュ簲鐢ㄧ▼搴忓湪寮濮嬬殑鏃跺欏彲浠ユ寚瀹氬摢浜涙暟鎹鐞嗘湇鍔″皢琚嬌鐢ㄣ傚彲浠ュ叏閮ㄤ嬌鐢紝
涔熷彲浠ュ彧鐢ㄥ叾涓殑涓閮ㄥ垎銆備緥濡傦紝濡傛灉涓涓簲鐢ㄧ▼搴忛渶瑕佹敮鎸佸鐢ㄦ埛騫跺彂鎿嶄綔錛屼絾涓嶉渶瑕佽繘琛屼簨鍔$鐞嗭紝閭e畠灝卞彲浠?br />鍙敤閿佸瓙緋葷粺鑰屼笉鐢ㄤ簨鍔°傛湁浜涘簲鐢ㄧ▼搴忓彲鑳介渶瑕佸揩閫熺殑銆佸崟鐢ㄦ埛銆佹病鏈変簨鍔$鐞嗗姛鑳界殑B鏍戝瓨鍌ㄧ粨鏋勶紝閭d箞搴旂敤紼嬪簭
鍙互浣塊攣瀛愮郴緇熷拰浜嬪姟瀛愮郴緇熷け鏁堬紝榪欐牱灝變細鍑忓皯寮閿銆偮?

BerkeleyDB瀛樺偍鍔熻兘姒傝堪聽聽聽聽
聽聽聽
聽聽聽 Berkeley DB鎵綆$悊鏁版嵁鐨勯昏緫緇勭粐鍗曚綅鏄嫢騫蹭釜鐙珛鎴栨湁涓瀹氬叧緋葷殑鏁版嵁搴?database)錛?br />姣忎釜鏁版嵁搴撶敱鑻ュ共璁板綍緇勬垚錛岃繖浜涜褰曞叏閮借琛ㄧず鎴?key錛寁alue)鐨勫艦寮?

聽聽聽 濡傛灉鎶婁竴緇勭浉鍏崇殑(key錛寁alue)瀵逛篃鐪嬩綔涓涓〃鐨勮瘽錛岄偅涔堟瘡涓涓暟鎹簱鍙厑璁稿瓨鏀句竴涓猼able錛?br />榪欎竴鐐逛笉鍚屼簬涓鑸殑鍏崇郴鏁版嵁搴撱傚疄闄呬笂錛屽湪Berkeley DB涓墍鎻愬埌鐨勨滄暟鎹簱鈥濓紝鐩稿綋浜庝竴鑸叧緋繪暟鎹簱緋葷粺涓殑琛紱
鑰屸渒ey/data鈥濆鐩稿綋浜庡叧緋繪暟鎹簱緋葷粺涓殑琛?rows)錛汢erkeley DB涓嶆彁渚涘叧緋繪暟鎹簱涓垪鐩存帴璁塊棶鐨勫姛鑳斤紝
鑰屾槸鍦ㄢ渒ey/data鈥濆涓殑data欏逛腑閫氳繃瀹為檯搴旂敤鏉ュ皝瑁呭瓧孌?鍒?銆?/p>

聽聽聽 鍦ㄧ墿鐞嗙粍緇囦笂錛屾瘡涓涓暟鎹簱鍦ㄥ垱寤虹殑鏃跺欏彲浠ョ敱搴旂敤紼嬪簭鏍規嵁鍏舵暟鎹壒鐐規潵閫夋嫨涓縐嶅悎閫傜殑瀛樺偍緇撴瀯銆?br />鍙緵閫夋嫨鐨勫洓縐嶆枃浠跺瓨鍌ㄧ粨鏋勫垎鍒槸錛氬搱甯屾枃浠躲丅鏍戙佸畾闀胯褰?闃熷垪)鍜屽彉闀胯褰?鍩轟簬璁板綍鍙風殑綆鍗曞瓨鍌ㄦ柟寮?銆?/p>

聽聽聽 涓涓墿鐞嗙殑鏂囦歡涓彲浠ュ彧瀛樻斁涓涓崟鐙殑鏁版嵁搴擄紝涔熷彲浠ュ瓨鏀捐嫢騫茬浉鍏蟲垨涓嶇浉鍏崇殑鏁版嵁搴擄紝鑰屼笖榪欎簺鏁版嵁搴?br />鍙互鍒嗗埆閲囩敤闄ら槦鍒椾箣澶栦換鎰忎笉鍚岀殑緇勭粐鏂瑰紡錛屼互闃熷垪緇勭粐鐨勬暟鎹簱鍙兘鍗曠嫭瀛樻斁浜庝竴涓枃浠訛紝涓嶈兘鍚屽叾浠栧瓨鍌ㄧ被鍨嬫販鍚堝瓨鏀俱?/p>

聽聽聽 涓涓枃浠墮櫎浜嗗彈鏈澶ф枃浠墮暱搴﹀拰瀛樺偍絀洪棿鐨勭害鏉熶箣澶栵紝鐞嗚涓婂彲浠ュ瓨鍌ㄤ換鎰忓涓暟鎹簱銆?br />鍥犳緋葷粺瀹氫綅涓涓暟鎹簱閫氬父闇瑕佷袱涓弬鏁扳斺斺滄枃浠跺悕鈥濆拰鈥滄暟鎹簱鍚嶁濓紝榪欎篃鏄疊erkeley DB涓嶅悓浜?br />涓鑸叧緋繪暟鎹簱鐨勫湴鏂廣?/p>

聽聽 Berkeley DB瀛樺偍緋葷粺涓哄簲鐢ㄧ▼搴忔彁渚涗簡涓緋誨垪鐨勬帴鍙e嚱鏁幫紝鐢ㄤ簬瀵規暟鎹簱鐨勭鐞嗗拰鎿嶄綔銆傚叾涓寘鎷細
聽聽聽聽聽 (1)鏁版嵁搴撶殑鍒涘緩銆佹墦寮銆佸叧闂佸垹闄ゃ侀噸鍛藉悕絳夛紝浠ュ強瀵規暟鎹殑媯绱㈠拰澧炲垹鏀規搷浣滐紱
聽聽聽聽聽 (2)鎻愪緵涓浜涢檮鍔犵殑鍔熻兘錛屼緥濡傝鍙栨暟鎹簱鐘舵佷俊鎭佽鍙栨墍鍦ㄦ枃浠剁殑淇℃伅銆佽鍙栨墍鍦ㄦ暟鎹簱鐜鐨勪俊鎭?br />娓呯┖鏁版嵁搴撶殑鍐呭銆佹暟鎹簱鐨勫悓姝ュ浠姐佺増鏈崌綰с佹彁紺哄嚭閿欎俊鎭瓑絳夛紱
聽聽聽聽聽 (3)緋葷粺榪樻彁渚涗簡娓告爣鏈哄埗錛岀敤浜庡瓨鍙栧拰璁塊棶鎴愮粍鐨勬暟鎹紝浠ュ強瀵逛袱涓垨澶氫釜鐩稿叧鏁版嵁搴撹繘琛屽叧鑱斿拰絳夊艱繛鎺ユ搷浣滐紱
聽聽聽聽聽 (4)緋葷粺榪樼粰鍑轟簡涓浜涙帴鍙e嚱鏁扮敤浜庡瀛樺彇絳栫暐榪涜浼樺寲閰嶇疆錛屾瘮濡傚簲鐢ㄧ▼搴忓彲浠ヨ嚜宸辮緗瓸鏍戠殑鎺掑簭姣旇緝鍑芥暟銆?br />姣忛〉涓瓨鏀緆ey鐨勬渶灝戞暟鐩紝鍝堝笇妗剁殑濉厖鍥犲瓙銆佸搱甯屽嚱鏁般佸搱甯岃〃鏈澶ч暱搴︼紝闃熷垪鐨勬渶澶ч暱搴︼紝鏁版嵁搴撳瓨鏀劇殑瀛楄妭欏哄簭錛?br />搴曞眰瀛樺偍欏電殑澶у皬錛屽唴瀛樺垎閰嶅嚱鏁幫紝楂橀熺紦瀛樼殑澶у皬錛屽畾闀胯褰曠殑澶у皬鍜屽~鍏呬綅錛屽彉闀胯褰曟墍鐢ㄧ殑鍒嗛殧絎︾瓑絳夈?br />聽聽聽聽

杞嚜(http://dev.csdn.net/article/39/39637.shtm)



]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲第一狼人社区| 一本色道综合亚洲| 香蕉久久国产| 亚洲一级黄色片| 亚洲一区图片| 亚洲欧美视频在线观看视频| 欧美一级二级三级蜜桃| 久久九九免费视频| 久久综合九色99| 欧美韩国一区| 亚洲欧洲综合| 亚洲乱码视频| 亚洲午夜精品福利| 欧美一级夜夜爽| 久久婷婷影院| 欧美理论电影网| 国产精品国产三级国产aⅴ9色| 国产精品久久久久久一区二区三区| 国产精品自拍在线| 好吊一区二区三区| 亚洲精品老司机| 亚洲在线免费| 影音先锋中文字幕一区二区| 国产精品视频网| 国语自产精品视频在线看| 亚洲国产网站| 亚洲视频一区二区免费在线观看| 中文一区二区| 久久成人资源| 亚洲第一中文字幕| 亚洲伊人网站| 欧美成人一区二区| 国产精品一区二区久久国产| 狠狠色丁香婷婷综合| 99伊人成综合| 久久久久国产一区二区| 亚洲黄色三级| 欧美一区在线视频| 欧美日韩国产区一| 狠狠色狠狠色综合系列| av成人黄色| 久久久亚洲综合| 亚洲美女性视频| 久久国产日韩| 日韩视频精品在线观看| 午夜精品福利在线观看| 欧美freesex交免费视频| 国产精品久久久久久av福利软件| 韩日视频一区| 亚洲一二三区精品| 欧美国产精品一区| 性欧美videos另类喷潮| 欧美日韩免费一区二区三区| 在线精品视频免费观看| 亚洲欧美日韩国产综合| 亚洲国内在线| 久久精品人人爽| 国产精品劲爆视频| 午夜在线视频一区二区区别| 欧美一区二区三区四区高清| 欧美精品一区二区久久婷婷| 国产欧美日韩一区二区三区在线 | 亚洲一级电影| 欧美大片网址| 欧美一区二区三区精品电影| 欧美喷潮久久久xxxxx| 尤物yw午夜国产精品视频| 香蕉亚洲视频| 亚洲精品中文字| 久久这里只有| 国户精品久久久久久久久久久不卡| 亚洲天堂免费在线观看视频| 亚洲第一精品影视| 久久久久亚洲综合| 国产亚洲午夜| 午夜精品久久久| 99精品久久| 欧美猛交免费看| 最新精品在线| 免费在线观看精品| 久久经典综合| 国产欧美日韩亚洲| 欧美一级精品大片| 一区二区三区三区在线| 亚洲大胆女人| 久久一本综合频道| 狠狠色丁香婷综合久久| 欧美在线一二三区| 亚洲香蕉在线观看| 欧美色综合天天久久综合精品| 亚洲精品欧美一区二区三区| 欧美成人情趣视频| 久久夜色撩人精品| 1204国产成人精品视频| 久久伊人精品天天| 久久精品一区中文字幕| 国内精品国产成人| 久久久精彩视频| 欧美一区深夜视频| 国内精品免费在线观看| 久久久精品免费视频| 欧美在线欧美在线| 国产主播精品在线| 老鸭窝毛片一区二区三区| 久久国产黑丝| 一区二区三区在线观看国产| 毛片基地黄久久久久久天堂| 久久精品成人| 亚洲成色777777女色窝| 免费在线一区二区| 久久综合九色综合欧美就去吻| 在线成人av网站| 欧美大片第1页| 欧美激情亚洲| 亚洲永久免费视频| 亚洲欧美日韩一区二区在线| 国产日韩1区| 久久久青草青青国产亚洲免观| 欧美在线你懂的| 亚洲电影av| 最新日韩欧美| 国产精品久久久久久模特| 欧美在线精品免播放器视频| 欧美在线观看一区二区| 在线视频观看日韩| 亚洲精品国偷自产在线99热| 欧美三级第一页| 欧美一级精品大片| 久久一区精品| 在线视频精品一区| 亚洲综合999| 亚洲电影免费观看高清完整版在线| 亚洲国产精品va在线看黑人动漫 | 亚洲欧洲一区二区三区久久| 亚洲激情网址| 国产精品免费看| 久久一日本道色综合久久| 欧美电影免费观看大全| 亚洲综合精品| 久久亚洲精品网站| 在线亚洲成人| 欧美一区二区高清| 日韩视频在线播放| 亚洲一区一卡| 亚洲第一中文字幕| 一区二区三区高清| 黄色成人在线免费| 亚洲人成网站色ww在线| 国产美女诱惑一区二区| 黄色日韩在线| 国产精品一页| 嫩草伊人久久精品少妇av杨幂| 欧美高清视频在线播放| 亚洲欧美日韩国产综合在线| 久久久久久久波多野高潮日日| 9色porny自拍视频一区二区| 翔田千里一区二区| 日韩天天综合| 欧美一级视频一区二区| 99亚洲伊人久久精品影院红桃| 欧美一级免费视频| 日韩一级在线观看| 久久精品国产99国产精品| 99伊人成综合| 久久久欧美一区二区| 亚洲在线视频观看| 欧美成人官网二区| 久久性天堂网| 国产精品婷婷午夜在线观看| 亚洲国产人成综合网站| 国产亚洲日本欧美韩国| 999在线观看精品免费不卡网站| 一区二区三区在线看| 亚洲小说欧美另类社区| 亚洲精品色图| 久久―日本道色综合久久| 欧美与黑人午夜性猛交久久久| 欧美激情一区三区| 免播放器亚洲一区| 国产精品一区一区三区| 亚洲精品少妇30p| 亚洲国产专区校园欧美| 欧美一级成年大片在线观看| 亚洲香蕉在线观看| 欧美激情麻豆| 牛夜精品久久久久久久99黑人| 国产精品永久免费| 99在线精品视频| 亚洲免费不卡| 猛男gaygay欧美视频| 久久亚洲国产精品日日av夜夜| 国产精品久久久久毛片大屁完整版 | 久久久精品2019中文字幕神马| 亚洲免费视频观看| 欧美美女日韩| 亚洲国产精品福利| 亚洲福利视频一区二区| 久久久久网址| 国产精品色午夜在线观看| av不卡免费看|