Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門

kaseken (Kent Kaseda)

September 11, 2026

Transcript

68 slides
  1. 13

  2. 14

  3. 15

  4. 16

  5. 17

  6. ファイル ページ 0 ページ 1 ページ 2 ページ 3 レコード

    0 レコード 1 レコード 2 レコード 3 23
  7. ファイル ページ 0 ページ 1 ページ 2 ページ 3 レコード

    0 レコード 1 レコード 2 レコード 3 カラム1 (id) カラム2 (name) カラム3 (email) 24
  8. 行指向DB (e.g. MySQL) カラム ① カラム ② カラム ① カラム

    ② 列指向DB (e.g. BigQuery) カラム ① カラム ① カラム ① カラム ① ︙ カラム ① カラム ② カラム ① カラム ② ︙ カラム ② カラム ② カラム ② カラム ② ︙ 27
  9. B+Tree ページ2ください ページャー キャッシュ ページ 0 ページ 1 nil nil

    ページ2ください ファイル ページ 0 ページ 1 ページ 2 ページ 3 32
  10. B+Tree ページ 2 ページャー キャッシュ ページ 0 ページ 1 ページ

    2 nil ページ 2 ファイル ページ 0 ページ 1 ページ 2 ページ 3 33
  11. B+Tree ページ 2 ページャー キャッシュ ページ 0 ページ 1 ページ

    2 nil ページ 0 ページ 1 ページ 2 ページ 3 ファイル 34
  12. B+Tree ページャー キャッシュ ページ 0 ページ 1 ページ 2 nil

    flush ファイル ページ 0 ページ 1 ページ 2 ページ 3 35
  13. 19 21 22 #1 17 #2 35 #3 #1 22

    #2 29 #3 24 26 29 30 31 35 48
  14. #1 8 #2 17 #3 子ノード #1 子ノード #2 子ノード

    #3 8以下 9以上・17以下 18以上 50
  15. 内部ノードは、 1ページ内で大量の子ノードを管理 ページ #1 12 #2 31 #3 47 #4

    67 #5 78 #6 91 #7 103 #8 123 #9 140 #10 159 #11 171 #12 192 #13 213 #14 244 #15 265 #16 287 #17 302 #18 330 52
  16. SELECT * FROM users WHERE id = 24 SQLパーサー id

    = 24のレコードを検索 B+Tree 54
  17. id = 24のレコードを検索 B+Tree #1 17 #2 35 #3 ルートノードのページを取得

    ページャー (未キャッシュの場合) ページを取得 ファイル 55
  18. id = 24のレコードを検索 B+Tree #1 17 #2 35 #3 #1

    22 #2 29 #3 ノードのページを取得 ページャー (未キャッシュの場合) ページを取得 ファイル 57
  19. id = 24のレコードを検索 B+Tree #1 17 #2 35 #3 #1

    22 #2 29 #3 #2に含まれる (23以上・29以下) 58
  20. id = 24のレコードを検索 B+Tree 24 #1 17 #2 35 #3

    #1 22 #2 29 #3 レコード 26 レコード 29 レコード ノードのページを取得 ページャー 59
  21. id = 24のレコードを検索 B+Tree 検索結果 24 #1 17 #2 35

    #3 #1 22 #2 29 #3 レコード 26 レコード 29 レコード 60
  22. id = 27のレコードを追加 B+Tree 24 #1 17 #2 35 #3

    #1 22 #2 29 #3 レコード 26 レコード 29 レコード ここに追加すべき 62
  23. id = 27のレコードを追加 B+Tree 24 レコード #1 17 #2 35

    #3 #1 22 #2 29 #3 26 レコード 27 レコード 29 レコード 追加された 63

More Decks by kaseken (Kent Kaseda)

Other Decks in Programming