$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データベースの気持ちになろう (ハンズオン)
Search
NearMeの技術発表資料です
PRO
September 09, 2022
Programming
0
800
データベースの気持ちになろう (ハンズオン)
NearMeの技術発表資料です
PRO
September 09, 2022
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
120
初めてのmarimo (ハンズオン)
nearme_tech
PRO
0
21
ローカルLLM
nearme_tech
PRO
0
37
LlamaIndex Workflow: Build Practical AI Agents Fast
nearme_tech
PRO
0
23
Box-Muller法
nearme_tech
PRO
1
36
Kiro触ってみた
nearme_tech
PRO
0
290
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
4
540
ReactNative のアップグレード作業が (意外に)楽しかった話
nearme_tech
PRO
2
130
強化学習アルゴリズムPPOの改善案を考えてみた
nearme_tech
PRO
0
85
Other Decks in Programming
See All in Programming
非同期処理の迷宮を抜ける: 初学者がつまづく構造的な原因
pd1xx
1
740
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
10
2.7k
tparseでgo testの出力を見やすくする
utgwkk
2
260
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
0
150
AIコーディングエージェント(Manus)
kondai24
0
200
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.3k
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
110
Navigating Dependency Injection with Metro
l2hyunwoo
1
160
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
510
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
450
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
400
Developing static sites with Ruby
okuramasafumi
0
310
Featured
See All Featured
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
2
2.7k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
0
290
Claude Code のすすめ
schroneko
65
200k
Skip the Path - Find Your Career Trail
mkilby
0
23
Facilitating Awesome Meetings
lara
57
6.7k
Faster Mobile Websites
deanohume
310
31k
Evolving SEO for Evolving Search Engines
ryanjones
0
72
The Pragmatic Product Professional
lauravandoore
37
7.1k
Between Models and Reality
mayunak
0
150
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
22
KATA
mclloyd
PRO
33
15k
Transcript
0 データベースの気持ちになろう (ハンズオン) 2022-09-07 第13回NearMe技術勉強会 Kenji Hosoda
1 こちらのNotebookでハンズオンします https://gist.github.com/kenji4569/b0523114f4b0b4a30a911c0e864c70a4
2 下準備 • JupyterLabの起動 • Docker Engineのインストール • MySQLコンテナの起動 •
MySQLへの接続 ◦ テーブルの作成 ◦ レコードの挿入 ◦ レコードの選択
3 3 よく使う調査コマンド • SHOW CREATE TABLE でテーブル定義の表示 • EXPLAINでSQLの実行計画を表示
4 4 インデックスがどう効くか確認 • 100000件のレコード挿入 • インデックスを貼ってないフィールドによって1レコードを取得した時の実行時間を確認 • 200000件、300000件の場合、実行時間はどう増えるか? •
ID(プライマリキー)によって1レコードを取得した時はどうなるか? • インデックスを貼ると検索時間はどう変わるか? id name 1 一郎 2 二郎 3 三郎 プライマリキー B+ツリー クラスタインデックス (リーフ=”レコード”) セカンダリインデックス (リーフ=プライマリキーの値) リーフ
5 5 マルチカラムインデックスの挙動を確認 • 複数のフィールドによって1つのレコードを取得 • 片方のフィールドだけインデックスを貼って実行時間を確認 • マルチカラムインデックスを貼って実行時間を確認 •
片方のフィールドで絞り込んでオフセットを指定してレコードを取得した場合の実行時間を確認 id last_name first_name 1 一山 一郎 2 一山 二郎 3 二山 一郎
6 6 ソートを加えた時の挙動を確認 • インデックスが効く場合 • ファイルソートが発生する場合 • 片方のフィールドで絞り込んでソートした場合 •
マルチカラムインデックスではなく片方のフィールドだけインデックスを貼った場合
7 7 テーブル結合時のインデックスの挙動を確認 • 基本的なテーブル結合の説明(INNER JOIN、LEFT JOIN) • 結合時にインデックスが効いている場合 •
結合時にインデックスが効いてない場合 出典:https://www.codeproject.com/articles/33052/visual-representation-of-sql-joins
8 Thank you