Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Kenta Oku
4,897 views
データベース14 - データベース構造とインデックス
立命館大学 情報理工学部 「データベース」講義スライド 第14回:データベース構造とインデックス
Education
◦
Read more
5
Save
Share
Embed
Embed presentation
Download
Downloaded 32 times
1
/ 57
2
/ 57
3
/ 57
4
/ 57
5
/ 57
6
/ 57
7
/ 57
8
/ 57
9
/ 57
10
/ 57
11
/ 57
12
/ 57
13
/ 57
14
/ 57
15
/ 57
16
/ 57
17
/ 57
18
/ 57
19
/ 57
20
/ 57
21
/ 57
22
/ 57
23
/ 57
24
/ 57
25
/ 57
26
/ 57
27
/ 57
28
/ 57
29
/ 57
30
/ 57
31
/ 57
32
/ 57
33
/ 57
34
/ 57
35
/ 57
36
/ 57
37
/ 57
38
/ 57
39
/ 57
40
/ 57
41
/ 57
42
/ 57
43
/ 57
44
/ 57
45
/ 57
46
/ 57
47
/ 57
48
/ 57
49
/ 57
50
/ 57
51
/ 57
52
/ 57
53
/ 57
54
/ 57
55
/ 57
56
/ 57
57
/ 57
More Related Content
PDF
データベース13 - トランザクションと障害回復
by
Kenta Oku
PDF
全社のデータ活用を一段階上げる取り組み
by
株式会社MonotaRO Tech Team
PDF
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
PDF
データベース09 - データベース設計
by
Kenta Oku
PDF
MonotaRO のデータ活用と基盤の過去、現在、未来
by
株式会社MonotaRO Tech Team
PDF
データベース12 - トランザクションと同時実行制御
by
Kenta Oku
PDF
A5 SQL Mk-2の便利な機能をお教えします
by
ester41
PPTX
論文に関する基礎知識2016
by
Mai Otsuki
データベース13 - トランザクションと障害回復
by
Kenta Oku
全社のデータ活用を一段階上げる取り組み
by
株式会社MonotaRO Tech Team
それはYAGNIか? それとも思考停止か?
by
Yoshitaka Kawashima
データベース09 - データベース設計
by
Kenta Oku
MonotaRO のデータ活用と基盤の過去、現在、未来
by
株式会社MonotaRO Tech Team
データベース12 - トランザクションと同時実行制御
by
Kenta Oku
A5 SQL Mk-2の便利な機能をお教えします
by
ester41
論文に関する基礎知識2016
by
Mai Otsuki
What's hot
PPTX
データ収集の基本と「JapanTaxi」アプリにおける実践例
by
Tetsutaro Watanabe
PDF
Pythonによる黒魔術入門
by
大樹 小倉
PDF
Elasticsearch勉強会#44 20210624
by
Tetsuya Sodo
PDF
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
PDF
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
by
株式会社MonotaRO Tech Team
PDF
データ基盤に関わる問い合わせ対応を仕組みで解決する
by
株式会社MonotaRO Tech Team
PPTX
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
PDF
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
by
Kenta Oku
PPTX
DockerコンテナでGitを使う
by
Kazuhiro Suga
PPTX
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
PDF
Flutter移行の苦労と、乗り越えた先に得られたもの
by
Recruit Lifestyle Co., Ltd.
PDF
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
by
NTT DATA Technology & Innovation
PPTX
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
PDF
情報推薦システム入門:講義スライド
by
Kenta Oku
PDF
例外設計における大罪
by
Takuto Wada
PDF
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
PDF
運用してわかったLookerの本質的メリット : Data Engineering Study #8
by
Masatoshi Abe
PDF
1-2-2 プラン・お支払い設定
by
freee株式会社
データ収集の基本と「JapanTaxi」アプリにおける実践例
by
Tetsutaro Watanabe
Pythonによる黒魔術入門
by
大樹 小倉
Elasticsearch勉強会#44 20210624
by
Tetsuya Sodo
テスト文字列に「うんこ」と入れるな
by
Kentaro Matsui
データ管理に重要なことは事業と組織の理解だった(Data Engineering Study #11 発表資料)
by
株式会社MonotaRO Tech Team
データ基盤に関わる問い合わせ対応を仕組みで解決する
by
株式会社MonotaRO Tech Team
MongoDBが遅いときの切り分け方法
by
Tetsutaro Watanabe
データベース03 - SQL(CREATE, INSERT, DELETE, UPDATEなど)
by
Kenta Oku
DockerコンテナでGitを使う
by
Kazuhiro Suga
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
by
Tokoroten Nakayama
Flutter移行の苦労と、乗り越えた先に得られたもの
by
Recruit Lifestyle Co., Ltd.
コンテナにおけるパフォーマンス調査でハマった話
by
Yuta Shimada
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
by
NTT DATA Technology & Innovation
さくっと理解するSpring bootの仕組み
by
Takeshi Ogawa
情報推薦システム入門:講義スライド
by
Kenta Oku
例外設計における大罪
by
Takuto Wada
オブジェクト指向プログラミングのためのモデリング入門
by
増田 亨
運用してわかったLookerの本質的メリット : Data Engineering Study #8
by
Masatoshi Abe
1-2-2 プラン・お支払い設定
by
freee株式会社
Viewers also liked
PDF
データベース02 - SQL概要
by
Kenta Oku
PDF
ICDE2014 Session 22 Similarity Joins
by
Masumi Shirakawa
PDF
ICDE 2014参加報告資料
by
Masumi Shirakawa
PDF
WWW2014 Session 16: Content Analysis 2 - Topics
by
Masumi Shirakawa
PDF
データベース08 - 関係データモデルと関係代数
by
Kenta Oku
PDF
データベース01 - データベースとは
by
Kenta Oku
PDF
VLDB2015 会議報告
by
Yuto Hayamizu
PDF
N-gram IDF: A Global Term Weighting Scheme Based on Information Distance (WWW...
by
Masumi Shirakawa
PDF
MySQL INDEX+EXPLAIN入門
by
infinite_loop
データベース02 - SQL概要
by
Kenta Oku
ICDE2014 Session 22 Similarity Joins
by
Masumi Shirakawa
ICDE 2014参加報告資料
by
Masumi Shirakawa
WWW2014 Session 16: Content Analysis 2 - Topics
by
Masumi Shirakawa
データベース08 - 関係データモデルと関係代数
by
Kenta Oku
データベース01 - データベースとは
by
Kenta Oku
VLDB2015 会議報告
by
Yuto Hayamizu
N-gram IDF: A Global Term Weighting Scheme Based on Information Distance (WWW...
by
Masumi Shirakawa
MySQL INDEX+EXPLAIN入門
by
infinite_loop
Similar to データベース14 - データベース構造とインデックス
PDF
データベース05 - SQL(SELECT:結合,副問合せ)
by
Kenta Oku
PDF
2018年度 若手技術者向け講座 インデックス
by
keki3
PDF
2019年度若手技術者向け講座 インデックス
by
keki3
PDF
pg_trgmと全文検索
by
NTT DATA OSS Professional Services
PDF
データベース技術 3(Database_3)
by
Yuka Obu
PDF
データベースシステム論12 - 問い合わせ処理と最適化
by
Shohei Yokoyama
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
by
Masahiro Nagano
PDF
MySQL 5.5 Update #denatech
by
Mikiya Okuno
PDF
SQL Server チューニング基礎
by
Microsoft
PPTX
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
by
NTT DATA Technology & Innovation
PPTX
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
by
NTT DATA Technology & Innovation
PDF
データベースシステム論06 - SQL基礎演習1 データの定義と操作
by
Shohei Yokoyama
PDF
Wtm
by
Soudai Sone
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
PDF
JPUGしくみ+アプリケーション勉強会(第20回)
by
Yoshinori Nakanishi
PDF
MySQL Index勉強会外部公開用
by
CROOZ, inc.
PPTX
Tuning on my_sql
by
Edward D. Kim
PDF
2018年度 若手技術者向け講座 実行計画
by
keki3
PPT
SQLチューニング勉強会資料
by
Shinnosuke Akita
データベース05 - SQL(SELECT:結合,副問合せ)
by
Kenta Oku
2018年度 若手技術者向け講座 インデックス
by
keki3
2019年度若手技術者向け講座 インデックス
by
keki3
pg_trgmと全文検索
by
NTT DATA OSS Professional Services
データベース技術 3(Database_3)
by
Yuka Obu
データベースシステム論12 - 問い合わせ処理と最適化
by
Shohei Yokoyama
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
by
NTT DATA Technology & Innovation
ISUCONで学ぶ Webアプリケーションのパフォーマンス向上のコツ 実践編 完全版
by
Masahiro Nagano
MySQL 5.5 Update #denatech
by
Mikiya Okuno
SQL Server チューニング基礎
by
Microsoft
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
by
NTT DATA Technology & Innovation
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
by
NTT DATA Technology & Innovation
データベースシステム論06 - SQL基礎演習1 データの定義と操作
by
Shohei Yokoyama
Wtm
by
Soudai Sone
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
by
Takuto Wada
JPUGしくみ+アプリケーション勉強会(第20回)
by
Yoshinori Nakanishi
MySQL Index勉強会外部公開用
by
CROOZ, inc.
Tuning on my_sql
by
Edward D. Kim
2018年度 若手技術者向け講座 実行計画
by
keki3
SQLチューニング勉強会資料
by
Shinnosuke Akita
データベース14 - データベース構造とインデックス
1.
データベース 第14回 データベース構造とインデックス 1 2015年7⽉9⽇(⽊) 7・8時限 担当:奥 健太
2.
トランザクションと データベース構造編 回 ⽇付 テーマ 12
6/25 トランザクションと同時実⾏制御 13 7/2 トランザクションと障害回復 14 7/9 データベース構造とインデックス 2
3.
トランザクションと データベース構造編での学習⽬標 3 トランザクションを理解する データベースの同時実⾏制御の仕組みを理解する
データベースの障害回復⽅法を理解する 効率的なデータアクセスのためのデータ ベース構造およびインデックスを理解する
4.
効率的なデータアクセス機構 4 vs. 復習
5.
効率的なデータアクセス機構 5 2分経過… ユーザは1分も待ってくれない… 検索中…
6.
効率的なデータアクセス機構 6 0.01秒後! ⽬的のものが瞬時に検索される © 1996-2015, Amazon.com,
Inc. or its affiliates
7.
効率的なデータアクセス機構 回 ⽇付 テーマ 12
6/25 トランザクションと同時実⾏制御 13 7/2 トランザクションと障害回復 14 7/9 データベース構造とインデックス 7 データベース構造,ファイル編成,イン デックスについて学ぶ
8.
ファイル編成 本⽇の講義で学ぶこと 8 インデックス 結合処理のアルゴリズム
9.
⼤量のデータの管理 9 記憶領域の格納効率 検索効率
10.
⼤量のデータを 効率良く管理せよ 10
11.
フィールド レコード ファイル ファイル,レコード,フィールド 11 会員番号 ⽒名 1 ⿃⾕ 3
関本 4 上本 1 ⿃⾕ 3 関本 4 上本 ディスク関係 ファイル 記録媒体に保存された ひとまとまりのデータやプログラム レコード データの記録単位であり,1件のデータを表す フィールド データの記録単位であり,レコードにおける ⼀つ⼀つの項⽬を表す
12.
順次編成ファイル 12 ディスク上にレコードの順序通りに作られる編成 テープや巻物のイメージ レコード1
レコード2 レコード3 レコード4 レコードn 書込み 順序 読出し 順序 ファイルの 先頭位置 次の書込み位置 記憶領域の使⽤効率が良い
13.
順次編成ファイル 13 順次アクセスしかできない データの更新,削除,挿⼊に⼿間がかかる レコード1 レコード2 レコード3 レコード1
レコード2 レコード3 レコード1 レコード3
14.
直接編成ファイル 14 レコードをある単位ごとにディスクの場所におき,その 番地を直接指定することで読書きができる編成 レコード1 レコード2 ... レコード123 ... レコードn ... レコード 先頭位置 1バイト⽬ 101バイト⽬ 12,201バイト⽬ 100バイト固定⻑ レコード123はどこにある? 100 ×
(123 - 1) + 1 = 12,201バイト⽬
15.
直接編成ファイル 15 固定⻑であるため,記憶領域に無駄が⽣じる 順次アクセスとランダムアクセスができる レコード1 レコード2 ... レコード123 レコード1 レコード2 最⼤レコード⻑を超えたレコードには対応不可
16.
可変⻑でデータを ⾼速に検索する⽅法は? 16
17.
本の索引 17
18.
索引編成ファイル レコードのキー値から作成した索引(インデックス)を もつ編成 レコードのキー値 格納先の位置 1
1バイト⽬ 2 83バイト⽬ 3 183バイト⽬ ... 123 9,629バイト⽬ インデックスファイル レコード1 レコード2 レコード3 レコード123 レコードn 順次編成ファイル レコード123は どこにある? 検索効率が⽐較的良い レコードの挿⼊や 削除が⽐較的容易
19.
インデックス構築 BEFORE & AFTER 19 BEFORE CREATE
INDEX idx_user_id ON tweet_kansai(user_id) インデックス構築 14.24 sec
20.
ハッシュインデックス 20 キー値をもとにハッシュ関数の計算により,レコードア ドレスを求め,そのアドレスにレコードを格納する⽅法 51バイト⽬ 512バイト⽬ 2,376バイト⽬ レコード246 レコード123 ... ... ...レコード569 123 512 246
51 569 2,376 ハッシュ関数
21.
ハッシュ関数の種類 21 ⾃乗・中央法 キー値を⾃乗して中央の数字をアドレスとする 246 × 246
= 60516 除算法 キー値をある値で割った余りをアドレスとする 246 ÷ 61 = 4 あまり 2 基数変換法 キー値の基数を変換して下の桁をアドレスとする (246)16=2 × 162 + 4 × 161 + 6 × 160 = 582
22.
ハッシュの衝突 22 246 2 490 2 ハッシュ関数 ハッシュの衝突 (コンフリクト) 2バイト⽬ 20バイト⽬ レコード246 レコード569 ... ... ... レコード490
... ... 空き領域 空き領域へ シノニム
23.
ハッシュインデックス 23 検索効率がデータ量に依存しない シノニムの発⽣が増えると, アクセス効率が低下する 範囲検索には利⽤できない ソートには利⽤できない
24.
B⽊インデックス 24
25.
例;格納するレコード 25 キー値 キー以外 2 … 10
… 20 … 22 … 51 … 60 … 71 … 89 … 90 … 98 …
26.
B⽊インデックス 26 効率良くデータを格納し,引き出すための多分⽊構造 (60,…) (20,…) (2,…) (10,…)
(22,…) (51,…) (71,…) (90,…) (98,…) (89,…)
27.
ノード 27 ルートノード 下位ノードへのポインタをもつ 中間ノード 下位ノードへのポインタをもつ リーフノード 最下位ノード
28.
ルートノードと中間ノード (60,…) k個のレコードとk+1個の下位ノードへのポインタをもつ ルートノードのレコード数はd個
(d ≦ k) とする レコードは,キー値とキー以外のデータから構成される ノード内のレコードはキー値でソートされている 下位ノードへのポインタは,最初のレコードの前,最後 のレコードの後,レコード間に格納される レコードレコード レコードレコード下位ノードへの ポインタ ノード 28
29.
B⽊はバランス⽊ 29 ⽊の⾼さ (ルートノードから リーフノードまでの ノード数)は⼀定 すべてのリーフノードの深さが⼀定になるように,レ コードの挿⼊,更新,削除に伴って,インデックスが動 的に再構成される ⾼々,⽊の⾼さ分のアクセス回数で済む
30.
B⽊(参照操作) 22を取り出そう 30 (60,…) (20,…) (2,…) (10,…) (22,…)
(51,…) (71,…) (90,…) (98,…) (89,…) 22と⽐較 22と⽐較 60より⼩さい のでこちら 20より⼤きい のでこちら 22と⽐較
31.
B⽊(登録操作) 76を登録しよう 31 (60,…) (20,…) (2,…) (10,…) (22,…)
(51,…) (71,…) (90,…) (98,…) (89,…) 76と⽐較 76と⽐較 60より⼤きい のでこちら 89より⼩さい のでこちら 76を登録 (76,…) 71の後ろが空いているので
32.
B⽊(登録操作) 93を登録しよう 32 (60,…) (20,…) (2,…) (10,…) (22,…)
(51,…) (71,…) (90,…) (98,…) (89,…) 93と⽐較 93と⽐較 60より⼤きい のでこちら 89より⼤きい のでこちら 93と⽐較90と98の間が空いていない
33.
B⽊(登録操作) 93を登録しよう 33 (71,…) (90,…) (98,…) (89,…) 93と⽐較 中央のレコード を上位ノードへ (93,…) 93を登録 中央より左側のレコードは 現在のリーフノードに残す (98,…) 中央より右側のレコードは 新しいリーフノードに移す 98を移動 (90,…) 上位ノードに新しい リーフノードへの ポインタを格納
34.
B⽊(登録操作) 80を登録しよう (60,…) (71,…) (75,…) (90,…)
(92,…) (89,…) (93,…) (98,…) (99,…) 34
35.
B⽊(登録操作) 80を登録しよう (60,…) (71,…) (75,…) (90,…)
(92,…) (89,…) (93,…) (98,…) (99,…) 80と⽐較 75と⽐較 89を登録 (75,…) (89,…) 35
36.
B⽊(登録操作) 80を登録しよう (60,…) (71,…) (75,…) (90,…)
(92,…) (89,…) (93,…) (98,…) (99,…) 80と⽐較 75と⽐較 89を登録 (75,…) (89,…) (93,…) 36 93を移動
37.
B⽊(登録操作) 80を登録しよう (60,…) (71,…) (75,…) (90,…)
(92,…) (89,…) (93,…) (98,…) (99,…) 80と⽐較 75と⽐較 89を登録 (75,…) (89,…) (93,…) 37 (80,…) 80を登録 93を移動
38.
B⽊インデックス 38 範囲検索では,すべてのノードを上下にたど る必要があり⾮効率 2〜71の値を取り出したい
39.
B+⽊インデックス 39 B⽊インデックスを改良
40.
B+⽊インデックス 索引部 データ部 索引部とデータ部に分けた構造 60 20 (2,…) (10,…) (20,…)
(22,…) (60,…) (71,…) (89,…) (90,…) 89 (51,…) (98,…)
41.
索引部 41 索引部 ルートノードと中間ノードには,キー値とポインタのみ を格納
42.
データ部 42 データ部 すべてのレコードがリーフノードに格納される 隣同⼠のリーフノード間でポインタによって結合される
43.
B+⽊インデックス 43 2〜71の値を取り出したい 隣のリーフノードをたどることにより, 範囲検索の効率が良い
44.
インデックス構築 BEFORE & AFTER 44 BEFORE AFTER 14.24
sec 0.01 sec
45.
SHOW INDEX FROM
【テーブル名】 45 BEFORE AFTER user_idにインデックス が作成されている BTREE = B⽊ 主キーのidには既にインデッ クスが作成されている
46.
EXPLAIN 【SELECT⽂】 46 BEFORE AFTER ALL: フルテーブルスキャン (インデックス未使⽤) ref:
UNIQUEでないインデッ クスを使った等価検索 インデックスidx_user_idを使⽤
47.
結合処理の アルゴリズム 47
48.
SELECT * FROM
novel JOIN publisher ON novel.pub_id = publisher.id; 等結合 48 novel_id title writer_id pub_id year id name 101秘密 1 1003 2001 1003⽂藝春秋 102⽩夜⾏ 1 1004 2002 1004集英社 103容疑者Xの献⾝ 1 1003 2008 1003⽂藝春秋 104模倣犯 2 1001 2005 1001新潮社 ... ... ... ... ... ... ... novel _id title writer _id pub_id year 101秘密 1 1003 2001 102⽩夜⾏ 1 1004 2002 103容疑者Xの献⾝ 1 1003 2008 104模倣犯 2 1001 2005 ...... ... ... ... novel id name 1001新潮社 1002講談社 1003⽂藝春秋 1004集英社 1005岩波書店 publisher ⼆つのテーブルで条件に合致するもののみを結合 結合演算が最も時間のかかる演算
49.
⼊れ⼦結合 49 . . (1) 駆動表の各⾏について,内部表を1⾏ずつスキャンし, 結合条件に合致するかチェック (2) 条件に合致していれば,結合した⾏を出⼒ 駆動表または外部表 内部表 novel _id title
writer _id pub _id year 101秘密 1 1003 2001 102⽩夜⾏ 1 1004 2002 103容疑者Xの献⾝ 1 1003 2008 104模倣犯 2 1001 2005 105⽕⾞ 2 1001 1998 1061Q84 3 1001 2009 107⾵の歌を聴け 3 1002 2004 108海辺のカフカ 3 1001 2002 109ノルウェイの森 3 1002 1987 110使命と魂のリミット 1 1006 2010 novel id name 1001新潮社 1002講談社 1003⽂藝春秋 1004集英社 1005岩波書店 publisher
50.
id name 1001新潮社 1002講談社 1003⽂藝春秋 1004集英社 1005岩波書店 novel _id title writer _id pub _id year 101秘密
1 1003 2001 102⽩夜⾏ 1 1004 2002 103容疑者Xの献⾝ 1 1003 2008 104模倣犯 2 1001 2005 105⽕⾞ 2 1001 1998 1061Q84 3 1001 2009 107⾵の歌を聴け 3 1002 2004 108海辺のカフカ 3 1001 2002 109ノルウェイの森 3 1002 1987 110使命と魂のリミット 1 1006 2010 インデックスによる結合 50 novel (1) 駆動表の各⾏について,内部表からインデックスをた どって,結合キーが合致する⾏を検索 (2) 検索された⾏を結合した⾏を出⼒ 駆動表または外部表 内部表 publisher 内部表のid に対するイ ンデックス
51.
id name 1001新潮社 1002講談社 1003⽂藝春秋 1004集英社 1005岩波書店 novel _id title writer _id pub _id year 101秘密
1 1003 2001 102⽩夜⾏ 1 1004 2002 103容疑者Xの献⾝ 1 1003 2008 104模倣犯 2 1001 2005 105⽕⾞ 2 1001 1998 1061Q84 3 1001 2009 107⾵の歌を聴け 3 1002 2004 108海辺のカフカ 3 1001 2002 109ノルウェイの森 3 1002 1987 110使命と魂のリミット 1 1006 2010 ハッシュ結合 51 novel (1) ⽚⽅のテーブルをスキャンし,結合キーに対し,ハッ シュ関数を適⽤することで,ハッシュテーブルを作成 (2) もう⼀⽅のテーブルをスキャンし,結合キーがハッ シュテーブルに存在するかチェック id hash 1001 20 1002 40 1003 60 1004 80 1005 100 ハッシュ テーブル publisher MySQLではサポート外
52.
マージ結合 52 id name 1001新潮社 1002講談社 1003⽂藝春秋 1004集英社 1005岩波書店 novel _id title writer _id pub _id year 104模倣犯
2 1001 2005 105⽕⾞ 2 1001 1998 1061Q84 3 1001 2009 108海辺のカフカ 3 1001 2002 107⾵の歌を聴け 3 1002 2004 109ノルウェイの森 3 1002 1987 101秘密 1 1003 2001 103容疑者Xの献⾝ 1 1003 2008 102⽩夜⾏ 1 1004 2002 110使命と魂のリミット 1 1006 2010 novel pub_idでソート済み idで ソート済み . . . . . . . (1) あらかじめ両⽅のテーブルを結合キーでソート (2) ソートされたテーブルの各値を⽐較しながら,結合条 件をチェック publisher MySQLではサポート外
53.
EXPLAIN 【SELECT⽂】 53 Block Nested
Loop: ⼊れ⼦結合の改良版
54.
ファイル編成 まとめ 54 インデックス 結合処理のアルゴリズム
55.
まとめ 55 ⼊れ⼦結合 インデックスによる結合 ハッシュ結合 マージ結合 ハッシュインデックス B⽊インデックス B+⽊インデックス 順次編成ファイル 直接編成ファイル 索引編成ファイル
56.
本⽇学習したキーワード 〜トランザクションとデータベース構造編〜 56 2相ロッキング 縮退相 ハッシュ関数 ACID特性
順次編成ファイル ハッシュ結合 Atomicity(原⼦性) 障害回復 ハッシュの衝突 B+⽊インデックス 除算法 バランス⽊ B⽊インデックス ⼈的障害 ビフォアイメージ Consistency(整合性) 成⻑相 ファイル Durability(耐久性) ダーティリード ファントムリード Isolation(隔離性) ダンプファイル フィールド WALプロトコル チェックポイント マージ結合 アフタイメージ 中間ノード 待合せグラフ ⼊れ⼦結合 直接編成ファイル リーフノード インデックス 直列化可能性 両⽴性⾏列 インデックスによる結合 データ部 ルートノード インデックスファイル データベースダンプ レコード 基数変換法 データベースバックアップ ロールバック 共有ロック デッドロック ロールフォワード 更新の喪失 同時実⾏制御 ロギング コミット トランザクション ログ(ジャーナル) 索引部 トランザクション障害 ログファイル 索引編成ファイル ノンリピータブルリード ロッキング ⾃乗・中央法 媒体障害 ロック システム障害 排他ロック シノニム ハッシュインデックス
57.
これまでに学習したキーワード 〜トランザクションとデータベース構造編〜 57 2相ロッキング 縮退相 ハッシュ関数 ACID特性
順次編成ファイル ハッシュ結合 Atomicity(原⼦性) 障害回復 ハッシュの衝突 B+⽊インデックス 除算法 バランス⽊ B⽊インデックス ⼈的障害 ビフォアイメージ Consistency(整合性) 成⻑相 ファイル Durability(耐久性) ダーティリード ファントムリード Isolation(隔離性) ダンプファイル フィールド WALプロトコル チェックポイント マージ結合 アフタイメージ 中間ノード 待合せグラフ ⼊れ⼦結合 直接編成ファイル リーフノード インデックス 直列化可能性 両⽴性⾏列 インデックスによる結合 データ部 ルートノード インデックスファイル データベースダンプ レコード 基数変換法 データベースバックアップ ロールバック 共有ロック デッドロック ロールフォワード 更新の喪失 同時実⾏制御 ロギング コミット トランザクション ログ(ジャーナル) 索引部 トランザクション障害 ログファイル 索引編成ファイル ノンリピータブルリード ロッキング ⾃乗・中央法 媒体障害 ロック システム障害 排他ロック シノニム ハッシュインデックス
Download