SQLiteÎļþ¸ñʽ·ÖÎö_v102 ÏÂÔØ±¾ÎÄ

Ô´ÂëÍø×ÊÁÏÏÂÔØ£ºwww.codepub.com 0X00000007£ºÎªPtr(0)£¬Ö¸ÏòµÚ7Ò³¡£

0X0A£ºPayloadÊý¾ÝµÄ×Ö½ÚÊý¡£Êý¾Ý´Ó03~0F¡£ 0X03£º¼Ç¼ͷ°üÀ¨3¸ö×Ö½Ú¡£

0X19£º×Ö¶Î1¡£TEXT£¬³¤¶ÈΪ£º(25-13)/2=6¡£×Ö¶ÎֵΪ£ºcookie¡£

0X01£º×Ö¶Î2¡£ÕûÊý£¬³¤¶ÈΪ1¡£×Ö¶ÎֵΪ£º0X0F£¬±íʾË÷ÒýÖµcookieËù¶ÔÓ¦¼Ç¼µÄ¹Ø¼üÖµ(¼´¼Ç¼µÄrowidÖµ)Ϊ15¡£

×¢£ºÈç¹ûÊÇͨ¹ýË÷Òý×ֶβéÕÒ¡°cookie¡±£¬ÏÖÔھͿÉÒÔ°´ÆärowidÖµ=15µ½Êý¾ÝB+treeÊ÷ÖÐÈ¥¼ìË÷¼Ç¼µÄÈ«²¿Êý¾ÝÁË¡£

0X03DCµ¥ÔªµÄÄÚÈÝÈçÏ£º(ͼÖÐÉîÀ¶É«²¿·Ö)

0X00000008£ºÎªPtr(1)£¬Ö¸ÏòµÚ8Ò³¡£

0X10£ºPayloadÊý¾ÝµÄ×Ö½ÚÊý¡£Êý¾Ý´Ó03~21¡£ 0X03£º¼Ç¼ͷ°üÀ¨3¸ö×Ö½Ú¡£

0X25£º×Ö¶Î1¡£TEXT£¬³¤¶ÈΪ£º(37-13)/2=12¡£×Ö¶ÎֵΪ£ºPeach Muffin¡£

0X01£º×Ö¶Î2¡£ÕûÊý£¬³¤¶ÈΪ1¡£×Ö¶ÎֵΪ£º0X21£¬±íʾË÷ÒýÖµPeach MuffinËù¶ÔÓ¦¼Ç¼µÄ¹Ø¼üֵΪ33¡£

3.3 Ë÷ÒýÒ³µÄÒ¶×ÓÒ³¸ñʽ

¶ÔÓÚB-treeÀ´Ëµ£¬ÄÚ²¿Ò³ÓëÒ¶×ÓÒ³µÄ¸ñʽ²î±ðÆäʵ²»´ó¡£¼òµ¥·ÖÎöһϣ¬ÎªÁËÑéÖ¤ÉÏÒ»½ÚµÄ½á¹û¡£

ÎļþµÚ8ҳǰ°ë²¿·ÖµÄÄÚÈÝÈçÏ£º

ҳͷµÄµÚ1¸ö×Ö½ÚֵΪ0X0A£¬ËµÃ÷¸ÃҳΪB-treeµÄÒ¶×ÓÒ³¡£ÆäËü²»ÔÙÏêÊö¡£

µ¥ÔªÄÚÈÝÇøµÄ¿ªÊ¼²¿·ÖÄÚÈÝÈçÏ£º

µ¥ÔªÄÚÈÝÇøµÄ¿ªÊ¼ºÍ½áÊø²¿·ÖÄÚÈÝÈçÏ£º

²»ÔÙÏêϸ·ÖÎöÁË£¬´Ö¿´¿ÉÒÔ¿´³ö£º

´ËÒ³¼Ç¼µÄË÷Òýֵȷʵ¶¼ÔÚcookieºÍPeach MuffinÖ®¼ä£¬²»°üÀ¨ÕâÁ½¸öÖµ(ÕâÁ½¸öÖµÒѾ­ÔÚ¸ùÒ³ÖÐÁË)¡£µ¥ÔªÊý¾Ý¶¼°´Ë÷ÒýÖµ´óСÅÅÐò¡£

ÏÂÔØÔ´Âë¾Íµ½Ô´ÂëÍø£¬www.codepub.com

Ô´ÂëÍø×ÊÁÏÏÂÔØ£ºwww.codepub.com 4 Ë鯬¡¢×ÔÓÉ¿éºÍ¿ÕÏÐÒ³

µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÃÇÖ»¶ÔÊý¾Ý¿â±í½øÐÐÁ˲åÈë²Ù×÷£¬Òò´Ë£¬Îļþ¸ñʽ»¹ÊǺܡ°ÕûÆë¡±µÄ¡£Èç¹û¶ÔÊý¾Ý¿â½øÐÐɾ³ýºÍÐ޸IJÙ×÷£¬¾Í»á²úÉúË鯬¡¢×ÔÓÉ¿éºÍ¿ÕÏÐÒ³¡£±¾ÎÄ1.2½ÚºÍ1.3½Ú¶ÔÏàÓ¦µÄ¸ÅÄîÓнÏÏêϸ½éÉÜ£¬±¾Õ¾ÍËãÊǶÔǰÊöÄÚÈݵÄÀýÖ¤°É¡£

4.1 Ë鯬

Ö´ÐÐÏÂÃæµÄupdateÓï¾ä£¬Ã¿Ö´ÐÐÒ»¾ä¶¼½«Ô­¼Ç¼µÄname×ֶγ¤¶È¼õÉÙ2×Ö½Ú(¿ÉÓëǰÎĵÄinsertÓï¾ä¶ÔÕÕ)¡£

update foods set name='Bavarian Cream P' where id=3;

Ö´ÐÐÍêÉÏÃæÓï¾äºó£¬ÎļþµÚ3Ò³µÄҳͷÄÚÈÝÈçÏÂͼËùʾ£º

¿ÉÒÔ¿´µ½£¬Æ«ÒÆÎª7µÄ×Ö½ÚÖµ±ä³ÉÁË2£¬ËµÃ÷µ±Ç°Ò³ÖÐÓÐ2×Ö½ÚµÄË鯬¡£ÔÙÖ´ÐÐÏÂÃæÓï¾ä£º update foods set name='Bear Cla' where id=4;

¿ÉÒÔ¿´µ½µ±Ç°Ò³ÖеÄË鯬×Ö½ÚÊýÒѾ­±ä³ÉÁË4£¬ÈçÏÂͼËùʾ£º

ÖÁÓÚË鯬×Ö½ÚÊýµ½¶à´ó²Å»áÕûÀí£¬ÕâµÃ·ÖÎöÔ´³ÌÐòÁË¡£

4.2 ×ÔÓÉ¿é

Ö´ÐÐÏÂÃæÉ¾³ýÓï¾ä£º

delete from foods where id=5; ÎļþµÚ3Ò³µÄҳͷÄÚÈÝÈçÏ£º

¿ÉÒÔ¿´µ½£¬µÚ1¸ö×ÔÓÉ¿éµÄÆ«ÒÆÁ¿Îª0X0396¡£ ¹Û²ì0X0396´¦µÄµ¥Ôª£¬Êý¾ÝÈçÏÂͼËùʾ£º

µ¥ÔªµÄǰ2¸ö×Ö½ÚÖ¸ÏòÏÂÒ»¸ö¿ÕÏп飬´Ë´¦ÖµÎª0£¬±íʾûÓÐÏÂÒ»¸ö¿ÕÏпéÁË¡£ 0X001E±íʾ¸Ã¿ÕÏпéµÄ´óС£¬´ÓÊýÖµÉÏÀ´·ÖÎö£¬Ó¦¸ÃÊǰüº¬ÁËÕâÁ½¸ö×Ö½Ú±¾Éí¡£ Èç¹ûÔÙɾ³ý1Ìõ¼Ç¼£¬¾Í¿ÉÒÔ¿´µ½×ÔÓÉ¿éÊÇÈçºÎ´®½ÓµÄ£¬ÎÒÃǾͲ»×öÁË¡£

4.3 ¿ÕÏÐÒ³

Ö´ÐÐÏÂÃæÉ¾³ýÓï¾ä£º

delete from foods where id>10; Îļþ´óСÈÔΪ9K£¬µ«´ËʱÎļþÖÐÓ¦¸ÃÓÐÁË6¸ö¿ÕÏÐÒ³(Ë÷ÒýºÍÊý¾Ý¶¼Ö»ÐèÒªÒ»¸öÒ³¾ÍÄÜ·ÅÏÂÁË)£¬·Ö±ðÊÇÒ³3¡¢4¡¢5¡¢7¡¢8ºÍÒ³9¡£ ¹Û²ì´ËʱµÄÎļþÍ·£¬ÄÚÈÝΪ£º

ÏÂÔØÔ´Âë¾Íµ½Ô´ÂëÍø£¬www.codepub.com

Ô´ÂëÍø×ÊÁÏÏÂÔØ£ºwww.codepub.com

×¢ÒâÆäÖÐÉîÀ¶É«²¿·Ö£¬¿ÉÒÔ¿´µ½£¬Æ«ÒÆÎª32µÄ4¸ö×Ö½ÚÖÐֵΪ0X00000005£¬±íʾ¿ÕÏÐÒ³Á´±íÊ×Ö¸ÕëÖ¸ÏòµÚ5¸öÒ³¡£¶ÔÁË£¬¾ÍÓ¦¸ÃÊǵÚ5¸öÒ³ÏÈ¿ÕÏгöÀ´¡£

Æ«ÒÆÎª36µÄ4¸ö×Ö½ÚÖÐֵΪ0X00000006£¬±íʾÎļþÖпÕÏÐÒ³µÄÊýÁ¿Îª6¡£

ÏÖÔڵýéÉÜһϿÕÏÐÒ³Á´±íµÄ¸ñʽÁË¡£ ¿ÕÏÐÒ³ÓÐÁ½ÖÖÀàÐÍ£ºtrunk page(Ö÷¸ÉÒ³)ºÍleaf page(Ò¶×ÓÒ³)¡£ÎļþÍ·Æ«ÒÆÎª32´¦µÄÖ¸ÕëÖ¸Ïò¿ÕÏÐÁ´±íµÄµÚÒ»¸ötrunk page£¬Ã¿¸ötrunk pageÖ¸Ïò¶à¸öÒ¶×ÓÒ³¡£Æ«ÒÆ36´¦µÄ4¸ö×Ö½ÚΪ¿ÕÏÐÒ³µÄ×ÜÊýÁ¿£¬°üÀ¨ËùÓеÄtrunk pageºÍleaf page¡£¿ÕÏÐÒ³Á´±íµÄ½á¹¹ÈçÏÂͼËùʾ£º

ÎļþÍ· ¿ÕÏÐÒ³Á´±íÊ×Ö¸Õë trunk page ÏÂÒ»¸ötrunk page leaf pageÊýÁ¿ ¡­ trunk page ÏÂÒ»¸ötrunk page leaf pageÊýÁ¿ ¡­ ¡­ trunk page ÏÂÒ»¸ötrunk page leaf pageÊýÁ¿ ¡­ leaf page leaf page ¡­ leaf page ÆäÖУ¬trunk pageµÄ¸ñʽ(´ÓÒ³µÄÆðʼ´¦¿ªÊ¼)ÈçÏ£º

(1)4¸ö×Ö½Ú£¬Ö¸ÏòÏÂÒ»¸ötrunk pageµÄÒ³ºÅ£¬0±íʾÁ´±í½áÊø£» (2)4¸ö×Ö½Ú£¬¸ÃÒ³leaf pageµÄÊýÁ¿£»

(3)0¸ö»ò¶à¸öÖ¸Ïòleaf pageµÄÒ³ºÅ£¬Ã¿Ïî4¸ö×Ö½Ú¡£

ÎļþµÚ6ҳǰ²¿µÄÄÚÈÝÈçÏ£º

˵Ã÷£º

ÏÂÒ»¸ötrunk pageµÄÒ³ºÅΪ0X00000000£¬±íʾÁ´±íÖÐÖ»ÓдËÒ»¸ötrunk page£¬Ã»Óкó¼Ì½áµãÁË¡£

¸ÃÒ³leaf pageµÄÊýÁ¿Îª0X00000005£¬±íʾ±¾Ò³´øÓÐ5¸öleaf page£¬ÒÀ´ÎΪ0X00000009£¬0X00000008£¬0X00000007¡¢0X00000004ºÍ0X00000003¡£

SQLite¶Ôleaf pageµÄ¸ñʽûÓй涨¡£

5 Òç³öÒ³µÄ¸ñʽ

ÏÂÔØÔ´Âë¾Íµ½Ô´ÂëÍø£¬www.codepub.com

Ô´ÂëÍø×ÊÁÏÏÂÔØ£ºwww.codepub.com 5.1 Òç³öÒ³¸ñʽ˵Ã÷

ÈçǰËùÊö£¬µ¥Ôª(cell)¾ßÓпɱäµÄ´óС£¬¶øÒ³µÄ´óСÊǹ̶¨µÄ£¬Õâ¾ÍÓпÉÄÜÒ»¸öµ¥Ôª±ÈÒ»¸öÍêÕûµÄÒ³»¹´ó£¬ÕâÑùµÄµ¥Ôª¾Í»áÒç³öµ½ÓÉÒç³öÒ³×é³ÉµÄÁ´±íÉÏ£¬ÈçÏÂͼËùʾ£º

BtreeÒ³ µ¥ÔªÍ· Payload µ¥ÔªÍ· Payload(µÚ1²¿·Ö) Òç³öÒ³ºÅ Òç³öÒ³ºÅ Òç³öÒ³ Payload(µÚ2²¿·Ö) ¡­ 0 Òç³öÒ³ Payload(×îºó²¿·Ö) ÔÚÉÏͼÖУ¬BtreeÒ³µÄ×îºóÒ»¸öµ¥Ôª³¬´ó£¬ÐèҪʹÓÃÒç³öÒ³¡£´Ëʱ£¬µ¥ÔªµÄ×îºó4¸ö×Ö½ÚΪÒç³öÒ³Á´±íÖеÚ1¸öÒç³öÒ³µÄÒ³ºÅ¡£¶ÔÓÚÿ¸öÒç³öÒ³£¬ÆäÍ·4¸ö×Ö½ÚΪÏÂÒ»Òç³öÒ³µÄÒ³ºÅ£¬¸ÃֵΪ0ʱ±íʾ´ËҳΪÒç³öÒ³Á´±íµÄ±íβҳ¡£

³ý×îºóÒ»¸öÒç³öÒ³Í⣬ÿ¸öÒç³öҳȫ²¿Ìî³äÊý¾Ý(³ýÁË×ʼµÄ4¸ö×Ö½Ú)¡£×îºóÒ»¸öÒç³öÒ³¿ÉÄÜÊý¾ÝºÜÉÙ£¬ÉõÖÁÖ»ÓÐÒ»¸ö×Ö½ÚµÄÊý¾Ý£¬µ«Ò»¸öÒç³öÒ³²»»á´æ´¢À´×ÔÁ½¸öµ¥ÔªµÄÊý¾Ý¡£

5.2 ×¼±¸Êý¾Ý¿â

µÃ»»Ò»¸öÊý¾Ý¿âÁË¡£ÎÒÃÇÓÃÏÂÃæµÄ·½·¨À´·ÖÎöÒç³öÒ³µÄ¸ñʽ£¬²¢¶ÔÉϽÚÄÚÈݽøÐÐÑéÖ¤¡£ Ö´ÐÐSQLiteµÄÃüÁîÐй¤¾ß£¬´´½¨Ò»¸öеÄÊý¾Ý¿âfood_text.db¡£ D:\\SQLite\\CLP>sqlite3 foods_text.db ´´½¨Ò»¸öÐÂ±í¡£

CREATE TABLE foods( id integer primary key, type_id integer, name text );

²åÈë1Ìõ¼Ç¼£¬¸Ã¼Ç¼°üº¬Ò»¶Î½Ï³¤µÄÎı¾¡£ INSERT INTO \ALUES(1, 1,

'0000000001000000000200000000030000000004000000009 0000000001000000000200000000030000000004000000009 0000000001000000000200000000030000000004000000009 0000000001000000000200000000030000000004000000009 0000000001000000000200000000030000000004000000009 0000000001000000000200000000030000000004000000009 ÏÂÔØÔ´Âë¾Íµ½Ô´ÂëÍø£¬www.codepub.com