Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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の技術発表資料です
並列で⽣成AIにコーディングをやらせる
nearme_tech
PRO
1
54
希望休勤務を考慮したシフト作成
nearme_tech
PRO
0
21
Hub Labeling による高速経路探索
nearme_tech
PRO
0
68
Build an AI agent with Mastra
nearme_tech
PRO
0
70
Rustで強化学習アルゴリズムを実装する vol3
nearme_tech
PRO
0
37
Webアプリケーションにおけるクラスの設計再入門
nearme_tech
PRO
1
82
AIエージェント for 予約フォーム
nearme_tech
PRO
2
150
ULID生成速度を40倍にしたった
nearme_tech
PRO
2
55
Amazon AuroraとMongoDBの アーキテクチャを比較してみたら 結構違った件について
nearme_tech
PRO
0
28
Other Decks in Programming
See All in Programming
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
1
450
Webの外へ飛び出せ NativePHPが切り拓くPHPの未来
takuyakatsusa
2
580
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
190
Advanced Micro Frontends: Multi Version/ Framework Scenarios @WAD 2025, Berlin
manfredsteyer
PRO
0
370
すべてのコンテキストを、 ユーザー価値に変える
applism118
4
1.4k
ご注文の差分はこちらですか? 〜 AWS CDK のいろいろな差分検出と安全なデプロイ
konokenj
3
470
Rails Frontend Evolution: It Was a Setup All Along
skryukov
0
240
TypeScriptでDXを上げろ! Hono編
yusukebe
3
650
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.5k
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1.1k
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
710
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
170
Featured
See All Featured
Facilitating Awesome Meetings
lara
54
6.5k
KATA
mclloyd
30
14k
Music & Morning Musume
bryan
46
6.7k
Bash Introduction
62gerente
613
210k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Making the Leap to Tech Lead
cromwellryan
134
9.4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Making Projects Easy
brettharned
116
6.3k
Code Review Best Practice
trishagee
69
19k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Site-Speed That Sticks
csswizardry
10
700
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