亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網

17站長網 首頁 數據庫 SQLite教程 查看內容

SQLite數據庫文件格式分析(B樹的基本組織)

2023-3-21 15:27| 查看: 2326 |來源: 互聯網

此分析稱為簡易版,因為后面還計劃分析一個更復雜的數據庫文件,以深入理解SQLite數據庫B樹實現的結構,從簡易的開始不失為一種好的學習方法,這里的簡易版本文 ...

此分析稱為簡易版,因為后面還計劃分析一個更復雜的數據庫文件,以深入理解SQLite數據庫B樹實現的結構,從簡易的開始不失為一種好的學習方法,這里的簡易版本文件是指大 小為2K字節,即每個B樹頁1K字節,共兩個B樹頁,補充說明一下,這里的B樹頁就是指經典數據結構書上所講的B樹節點,在這里稱為頁是因為SQLite 在實現B樹時就是使用頁page的概念來組織的。創建方法如下:

CREATE TABLE tbl1(one varchar(10),two varchar(10));

INSERT INTO "tbl1" VALUES('first', 'xxx');

INSERT INTO "tbl1" VALUES('second', 'yyy');

然后退出,用UltraEdit打開這個數據庫文件:

00000000h: 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 ; SQLite format 3.

00000010h: 04 00 01 01 00 40 20 20 00 00 00 07 00 00 00 00 ; .....@ ........

00000020h: 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 01 ; ................

00000030h: 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ; ................

00000040h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000050h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

00000060h: 00 00 00 00 0D 00 00 00 01 03 B8 00 03 B8 00 00 ; ..........?.?.

00000070h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

這中間部分全部都是零。省去!

000003a0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

000003b0h: 00 00 00 00 00 00 00 00 46 01 06 17 15 15 01 71 ; ........F......q

000003c0h: 74 61 62 6C 65 74 62 6C 31 74 62 6C 31 02 43 52 ; tabletbl1tbl1.CR

000003d0h: 45 41 54 45 20 54 41 42 4C 45 20 74 62 6C 31 28 ; EATE TABLE tbl1(

000003e0h: 6F 6E 65 20 76 61 72 63 68 61 72 28 31 30 29 2C ; one varchar(10),

000003f0h: 74 77 6F 20 76 61 72 63 68 61 72 28 31 30 29 29 ; two varchar(10))

這是第一個B樹頁,這個B樹頁里存放了表sqlite_master的信息,這就是SQLite數據庫的系統表了。

下面分析一下這些二進制的具體涵義,SQLite統一采用大端法來表示數據,不同與一般intel機器的小端法了:

偏移地址 大小 涵義

0 16 "SQLite format 3/000"

16 2 400H=1024個字節,每個頁面的字節數

18 2 0101H表示版本號而已

20 1 每頁末端的未用空間,這里為零表示數據都是從每頁最后一個字節開始存放

21 1 最大負載分片數,類似與IP分片,一頁存不下,要分片

22 1 最小負載分片數

23 1 最小葉子負載分片數

24 4 文件修改計數,用于實現并行訪問

28 4 保留未用

32 4 第一個freelist頁

36 4 文件中的freelist頁數

40 60 這里未用

上面的這一百個字節稱為數據庫文件的文件頭,這個文件頭只有第一個B樹頁才有,后面的每一個B樹頁都沒有這個結構,后面每一頁結構都相同:

依次為:B樹頁頭結構,B樹指針結構,未用空間,B樹實際數據負載。

這里和經典數據結構書上的B樹結構有些出入,這里的目的是實際應用方便,而書上的結構目的是解釋清楚B樹的原理。所以有些不同:

一般書上講的一個B樹頁的結構為:指針,數據,指針,數據,指針,數據,...,指針

而SQLite組織為:指針,指針,指針,...,指針,數據,數據,...數據。

第一個頁面中從00000060h行第五個字節開始就表示B樹頁頭結構了:

偏移地址 大小 涵義

0 1 0Dh=1101b各位意義為1: intkey, 2: zerodata, 4: leafdata, 8: leaf

1 2 第一個空閑塊的字節偏移量,這里為0

3 2 01,這個B樹頁存放的記錄數為1個,即系統表中只存放了一條記錄,因為只創建了一個表tbl1

5 2 負載區首地址,03B8,往下看到000003b0h行那個46就是負載區的開始了

7 1 分片數,這里數據少,不考慮,所以為0

到0000006Bh偏移處B數頭結束了,接下來的就是B數指針結構了,此處只有一項,只有一個指針03B8h處。

從000003B8h偏移到結束都是sqlite_master表的實際數據了。當然這些數據也是有結構的。46h表示這條記錄有70個字節,除去其本身46,和后面的01是索引外,整個記錄剛好是70個字節,01索引后面都是payload負載數據了。

如法炮制,下面列出第二個B樹頁:

00000400h: 0D 00 00 00 02 03 E5 00 03 F3 03 E5 00 00 00 00 ; ......?.??...

00000410h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

這中間部分全部為零。省去!

000007d0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ; ................

000007e0h: 00 00 00 00 00 0C 02 03 19 13 73 65 63 6F 6E 64 ; ..........second

000007f0h: 79 79 79 0B 01 03 17 13 66 69 72 73 74 78 78 78 ; yyy.....firstxxx

由于不是第一頁,所以不存在文件頭的100個字節了,一開始就是B樹頁頭結構了,這里有兩個指針03F3和03E5,其它的和上面一樣。整個數據庫管理系統就是準確無誤地對這個文件進行管理。

進一步的工作:只有數據多了,才能看出B樹組織的好處:查找,刪除,增加的快速!把這個文件變大再分析!

本文最后更新于 2023-3-21 15:27,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

熱門排行

最近更新

返回頂部
亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际
欧美亚洲综合网| 亚洲3atv精品一区二区三区| 性久久久久久久久久久久| 日韩二区在线观看| 亚洲欧洲三级电影| 欧美三级欧美一级| 欧美色图12p| 国产日韩影视精品| 在线观看亚洲一区| 亚洲欧美区自拍先锋| 91黄色免费网站| 日韩欧美国产综合一区| 色欧美片视频在线观看| 欧美精品tushy高清| 成人动漫一区二区在线| 日韩一级高清毛片| 亚洲视频免费看| 国模一区二区三区白浆| 五月激情丁香一区二区三区| 精品美女一区二区| 精品成人私密视频| 日韩一区二区三区在线观看| 这里是久久伊人| 夜夜揉揉日日人人青青一国产精品| 天天色天天爱天天射综合| 久久久久国色av免费看影院| 国产精品污污网站在线观看| 国产成人午夜电影网| 欧美久久久一区| 亚洲视频在线一区| 欧美伊人久久大香线蕉综合69 | 亚洲资源中文字幕| 99国产精品一区| 国产999精品久久久久久| 久久精品夜色噜噜亚洲aⅴ| 99精品在线观看视频| 亚洲一区二区四区蜜桃| 国产精品久久久久一区二区三区| 中文字幕免费不卡在线| 亚洲欧洲精品天堂一级| 成人做爰69片免费看网站| 国产三级精品在线| 69av一区二区三区| 午夜一区二区三区在线观看| 亚洲一二三专区| 成人免费视频免费观看| 国产精品久久久久久久午夜片| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲综合视频在线| 国产日产亚洲精品系列| 精品国产一二三| 日韩一区二区在线观看视频| 色噜噜偷拍精品综合在线| 国产精品区一区二区三区| 久久精品国产99国产精品| 欧美日韩一级片在线观看| 久久综合色鬼综合色| 久久久五月婷婷| 亚洲一区二区三区四区不卡| 亚洲欧洲av在线| 国产精品一级片| 日韩国产成人精品| 在线精品亚洲一区二区不卡| 国产精品美女久久福利网站| 国产精品18久久久久久久网站| 精品理论电影在线| 美日韩一级片在线观看| 美女看a上一区| 在线播放国产精品二区一二区四区| 亚洲欧美综合网| 99这里都是精品| 欧美在线影院一区二区| 国产精品久久久久影视| 99久久免费精品高清特色大片| 国产精品丝袜久久久久久app| 国产成+人+日韩+欧美+亚洲| 日本一区二区三区免费乱视频| 国产一区二区视频在线播放| 国产精品66部| 国产日产精品一区| a4yy欧美一区二区三区| 亚洲精品午夜久久久| 亚洲成人一区在线| 欧美日本在线一区| 欧美va亚洲va国产综合| 精品一区二区三区在线播放 | 97se亚洲国产综合在线| 亚洲视频免费观看| 欧美日韩精品一区二区在线播放| 丝袜诱惑亚洲看片| 国产二区国产一区在线观看| 欧美高清在线一区| 色av综合在线| 日韩成人免费在线| 久久亚洲精品小早川怜子| 99久久久久久| 日韩va亚洲va欧美va久久| 久久久精品tv| 91九色最新地址| 老色鬼精品视频在线观看播放| 久久精品欧美日韩精品| 色综合视频在线观看| 免费久久99精品国产| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美一区二区成人6969| 国产精品视频麻豆| 欧美日韩一区视频| 国产精品一级在线| 亚洲成人av电影在线| 国产性天天综合网| 欧美性色欧美a在线播放| 精东粉嫩av免费一区二区三区| 综合久久国产九一剧情麻豆| 欧美一区二区三区在线观看| 99久久婷婷国产精品综合| 蜜乳av一区二区| 亚洲一区在线观看视频| 国产欧美日韩精品一区| 欧美一区二区三区视频在线| 91小视频免费看| 久久久久国产免费免费 | eeuss鲁片一区二区三区在线观看| 亚洲午夜在线视频| 99精品久久只有精品| 青青草伊人久久| 亚洲午夜免费电影| 国产精品久久久久久久久免费相片 | 久久99在线观看| 亚洲小说春色综合另类电影| 中文一区二区在线观看| 日韩久久久久久| 制服.丝袜.亚洲.中文.综合| 一本久久a久久精品亚洲| 国产成人精品亚洲日本在线桃色| 青青青爽久久午夜综合久久午夜 | 亚洲黄网站在线观看| 欧美国产日韩亚洲一区| 久久久欧美精品sm网站| 日韩午夜激情av| 91精品麻豆日日躁夜夜躁| 欧美视频在线观看一区| 日本精品免费观看高清观看| av亚洲精华国产精华| 国产suv精品一区二区883| 韩国av一区二区| 久久超碰97中文字幕| 日韩精品成人一区二区三区| 亚洲一二三四区不卡| 亚洲国产精品影院| 亚洲国产精品一区二区久久恐怖片 | 成人国产精品免费观看动漫| 国产成人精品免费网站| 国产成人精品一区二| 东方aⅴ免费观看久久av| 成人午夜av在线| 国产成人av一区二区三区在线 | 午夜精品久久久久久久99樱桃| 亚洲男人天堂av网| 亚洲综合丝袜美腿| 日韩精品亚洲专区| 麻豆国产精品官网| 国产一区二区三区最好精华液| 国产激情精品久久久第一区二区 | 奇米在线7777在线精品| 亚洲成人av中文| 日韩影院在线观看| 麻豆国产欧美一区二区三区| 国产久卡久卡久卡久卡视频精品| 国产成人自拍在线| 91在线观看免费视频| 欧美主播一区二区三区美女| 欧美狂野另类xxxxoooo| 精品第一国产综合精品aⅴ| 国产日韩欧美电影| 亚洲自拍欧美精品| 美国十次综合导航| 成人av小说网| 欧美日本韩国一区二区三区视频| 日韩精品一区二区三区蜜臀 | 五月婷婷另类国产| 久草中文综合在线| aaa亚洲精品| 精品国产91亚洲一区二区三区婷婷 | 在线观看亚洲成人| 欧美精品一区二区在线播放 | 成人h版在线观看| 欧美私人免费视频| 久久中文字幕电影| 亚洲综合在线第一页| 国内成人免费视频| 欧美专区日韩专区| 国产欧美日韩卡一| 日本午夜一本久久久综合| 成人av电影在线| 日韩一二在线观看| 伊人色综合久久天天| 国产成人精品免费| 日韩一级完整毛片| 夜夜亚洲天天久久| 成人h动漫精品一区二|