How does SQLite work? Part 2: btrees! (or: disk seeks are slow don’t do them!) by Julia Evans.
From the post:
Welcome back to fun with databases! In Part 1 of this series, we learned that:
- SQLite databases are organized into fixed-size pages. I made an example database which had 1k pages.
- The pages are all part of a kind of tree called a btree.
- There are two kinds of pages: interior pages and leaf pages. Data is only stored in leaf pages.
I mentioned last time that I put in some print statements to tell me every time I read a page, like this:
I suspect Chris Granger would consider this as “plumbing” that prevents some users from using computation.
Chris would be right, to a degree, but Julia continues to lower the bar that “plumbing” poses to users.
Looking forward to more untangling and clarifying of SQLite plumbing!