Enviar búsqueda
Cargar
MySQL 入門的なはなし
•
4 recomendaciones
•
2,652 vistas
Yuya Takeyama
Seguir
Tecnología
Empresariales
Denunciar
Compartir
Denunciar
Compartir
1 de 35
Descargar ahora
Descargar para leer sin conexión
Recomendados
メッチャ役に立つauto_incrementの話
メッチャ役に立つauto_incrementの話
株式会社シャーロック
PHP と MySQL でカジュアルに MapReduce する (Short Version)
PHP と MySQL でカジュアルに MapReduce する (Short Version)
Yuya Takeyama
データベースをAI開発に活用
データベースをAI開発に活用
ReNom User Group
PHP と MySQL で 1 カチャカチャカチャ...ッターン! MapReduce (@ニコニコ超会議)
PHP と MySQL で 1 カチャカチャカチャ...ッターン! MapReduce (@ニコニコ超会議)
Yuya Takeyama
大規模CSVをMySQLに入れる
大規模CSVをMySQLに入れる
Shuhei Iitsuka
L2 over L3 ecnaspsulations
L2 over L3 ecnaspsulations
Motonori Shindo
Control distribution of virtual machines
Control distribution of virtual machines
irix_jp
http2 最速実装 v2
http2 最速実装 v2
Yoshihiro Iwanaga
Recomendados
メッチャ役に立つauto_incrementの話
メッチャ役に立つauto_incrementの話
株式会社シャーロック
PHP と MySQL でカジュアルに MapReduce する (Short Version)
PHP と MySQL でカジュアルに MapReduce する (Short Version)
Yuya Takeyama
データベースをAI開発に活用
データベースをAI開発に活用
ReNom User Group
PHP と MySQL で 1 カチャカチャカチャ...ッターン! MapReduce (@ニコニコ超会議)
PHP と MySQL で 1 カチャカチャカチャ...ッターン! MapReduce (@ニコニコ超会議)
Yuya Takeyama
大規模CSVをMySQLに入れる
大規模CSVをMySQLに入れる
Shuhei Iitsuka
L2 over L3 ecnaspsulations
L2 over L3 ecnaspsulations
Motonori Shindo
Control distribution of virtual machines
Control distribution of virtual machines
irix_jp
http2 最速実装 v2
http2 最速実装 v2
Yoshihiro Iwanaga
VMware NSXがサポートするトンネル方式について
VMware NSXがサポートするトンネル方式について
Motonori Shindo
Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録
Maki Toshio
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
Yahoo!デベロッパーネットワーク
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
Shinya Sugiyama
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
Hideki Saito
5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範
Ivan Tu
JOSUG 34th Meetup
JOSUG 34th Meetup
irix_jp
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
yoyamasaki
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
Kaoru Maeda
Index shotgun on mysql5.6
Index shotgun on mysql5.6
yoku0825
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
Takashi Takizawa
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
サーバ性能改善事例
サーバ性能改善事例
KLab Inc. / Tech
5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流
Yuya Takeyama
Good Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX Philosophy
Yuya Takeyama
Reactor Pattern and React
Reactor Pattern and React
Yuya Takeyama
PHP と MySQL でカジュアルに MapReduce する
PHP と MySQL でカジュアルに MapReduce する
Yuya Takeyama
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
Yuya Takeyama
HashTable と HashDos
HashTable と HashDos
Yuya Takeyama
Proposal for xSpep BDD Framework for PHP
Proposal for xSpep BDD Framework for PHP
Yuya Takeyama
Building Development Environment with php-build and phpenv
Building Development Environment with php-build and phpenv
Yuya Takeyama
PHPUnit でよりよくテストを書くために
PHPUnit でよりよくテストを書くために
Yuya Takeyama
Más contenido relacionado
Similar a MySQL 入門的なはなし
VMware NSXがサポートするトンネル方式について
VMware NSXがサポートするトンネル方式について
Motonori Shindo
Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録
Maki Toshio
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
Yahoo!デベロッパーネットワーク
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
Shinya Sugiyama
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
Hideki Saito
5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範
Ivan Tu
JOSUG 34th Meetup
JOSUG 34th Meetup
irix_jp
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
yoyamasaki
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
Kaoru Maeda
Index shotgun on mysql5.6
Index shotgun on mysql5.6
yoku0825
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
Takashi Takizawa
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
yoku0825
サーバ性能改善事例
サーバ性能改善事例
KLab Inc. / Tech
Similar a MySQL 入門的なはなし
(13)
VMware NSXがサポートするトンネル方式について
VMware NSXがサポートするトンネル方式について
Rails 6.1 → 7.0アップデート記録
Rails 6.1 → 7.0アップデート記録
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
DB tech showcase_tokyo2018_LOCONDO
DB tech showcase_tokyo2018_LOCONDO
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範
JOSUG 34th Meetup
JOSUG 34th Meetup
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
HTTP2 最速実装 〜入門編〜
HTTP2 最速実装 〜入門編〜
Index shotgun on mysql5.6
Index shotgun on mysql5.6
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
サーバ性能改善事例
サーバ性能改善事例
Más de Yuya Takeyama
5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流
Yuya Takeyama
Good Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX Philosophy
Yuya Takeyama
Reactor Pattern and React
Reactor Pattern and React
Yuya Takeyama
PHP と MySQL でカジュアルに MapReduce する
PHP と MySQL でカジュアルに MapReduce する
Yuya Takeyama
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
Yuya Takeyama
HashTable と HashDos
HashTable と HashDos
Yuya Takeyama
Proposal for xSpep BDD Framework for PHP
Proposal for xSpep BDD Framework for PHP
Yuya Takeyama
Building Development Environment with php-build and phpenv
Building Development Environment with php-build and phpenv
Yuya Takeyama
PHPUnit でよりよくテストを書くために
PHPUnit でよりよくテストを書くために
Yuya Takeyama
Making DSL with []
Making DSL with []
Yuya Takeyama
LIMIT 付きで UPDATE を行うと何故怒られるか
LIMIT 付きで UPDATE を行うと何故怒られるか
Yuya Takeyama
GOOS #1
GOOS #1
Yuya Takeyama
Ruby 同好会宣言
Ruby 同好会宣言
Yuya Takeyama
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
Yuya Takeyama
Más de Yuya Takeyama
(14)
5分でわかる? 関数型 PHP の潮流
5分でわかる? 関数型 PHP の潮流
Good Parts of PHP and the UNIX Philosophy
Good Parts of PHP and the UNIX Philosophy
Reactor Pattern and React
Reactor Pattern and React
PHP と MySQL でカジュアルに MapReduce する
PHP と MySQL でカジュアルに MapReduce する
PHPUnit でテスト駆動開発を始めよう
PHPUnit でテスト駆動開発を始めよう
HashTable と HashDos
HashTable と HashDos
Proposal for xSpep BDD Framework for PHP
Proposal for xSpep BDD Framework for PHP
Building Development Environment with php-build and phpenv
Building Development Environment with php-build and phpenv
PHPUnit でよりよくテストを書くために
PHPUnit でよりよくテストを書くために
Making DSL with []
Making DSL with []
LIMIT 付きで UPDATE を行うと何故怒られるか
LIMIT 付きで UPDATE を行うと何故怒られるか
GOOS #1
GOOS #1
Ruby 同好会宣言
Ruby 同好会宣言
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
Último
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Último
(11)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
MySQL 入門的なはなし
1.
M yS Q
L 入門的なはなし @yuya_takeyama
2.
今日の趣旨 •主に MySQL 初心者を対象に •手っとり早くレバレッジの効く話を •します
3.
アジェンダ •何故 MySQL 勉強会なのか •
MySQL のアーキテクチャ •インデックスを使うと何故速い? •MySQL の勉強の仕方
4.
アジェンダ •何故 MySQL 勉強会なのか •
MySQL のアーキテクチャ •インデックスを使うと何故速い? •MySQL の勉強の仕方 間に合いませんでした... 検索ワードに nippondanji を追加すれば情報の質が上がるのでオススメ
5.
何故 MySQL 勉強会
なのか
6.
コストパフォーマンス •遅い! というとき問題は大体 DB •
プログラムの改善で 10 倍高速化は 無理でも DB ならザラにある •うっかり作るとトンでもないことに
7.
知識の可搬性 • 他の RDBMS/DBMS にも適用可能 •原理を知ればプログラミング一般にも 適用可能
8.
今まさに MySQL が熱い •NOSQL
ブームに騙されない • RDBMS を使いつつ, NOSQL で最 適化というパターンがほとんど •決済などのクリティカルなデータなら なおさら
9.
MySQL
の アーキテクチャ
10.
http://www.oreilly.de/catalog/9780596101718/toc.html
11.
• 認証 •接続の管理 •ユーザとか
12.
•SQL パーサ •クエリを解析
13.
•クエリ キャッシュ • 使えるときは キャッシュを 使う • 使えない場合 もある
14.
• オプティマイザ (最適化器) •実行計画 •どう検索すれば 速いか?
15.
•ストレージ エンジン •データを格納 • プラッガブル
(自由に選べる) •MySQL の 大きな特徴
16.
クエリキャッシュ • 同じクエリを実行したとき •結果が同じであることが保証されれば •キャッシュから使い回し
17.
キャッシュされないクエリ • NOW() • CURDATE() •RAND() •その他比決定的な関数・値
18.
オプティマイザ •実行計画の最適化を行う •どのインデックスを使うか •どういう順番でテーブルを開くか
19.
オプティマイザに聞いてみよう •SELECT の前に • EXPLAIN
とつけて •実行する •吟味する
20.
悪い例 ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ id |
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ 1 | SIMPLE | person | ALL | NULL | NULL | NULL | NULL | 1679821 | Using where; Using filesort | ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ 良い例 +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | 1 | SIMPLE | person | const | PRIMARY | PRIMARY | 34 | const | 1 | | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ | 1 | SIMPLE | person | range | PRIMARY | PRIMARY | 34 | NULL | 1484 | Using where | +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+
21.
悪い例 ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ id |
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ 1 | SIMPLE | person | ALL | NULL | NULL | NULL | NULL | 1679821 | Using where; Using filesort | ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ 良い例 +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | 1 | SIMPLE | person | const | PRIMARY | PRIMARY | 34 | const | 1 | | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ | 1 | SIMPLE | person | range | PRIMARY | PRIMARY | 34 | NULL | 1484 | Using where | +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ 評価対象の行数
22.
悪い例 ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ id |
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ 1 | SIMPLE | person | ALL | NULL | NULL | NULL | NULL | 1679821 | Using where; Using filesort | ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ 良い例 +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | 1 | SIMPLE | person | const | PRIMARY | PRIMARY | 34 | const | 1 | | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ | 1 | SIMPLE | person | range | PRIMARY | PRIMARY | 34 | NULL | 1484 | Using where | +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ インデックスは使われているか
23.
悪い例 ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ id |
select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ 1 | SIMPLE | person | ALL | NULL | NULL | NULL | NULL | 1679821 | Using where; Using filesort | ----+-------------+--------+------+---------------+------+---------+------+---------+-----------------------------+ 良い例 +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ | 1 | SIMPLE | person | const | PRIMARY | PRIMARY | 34 | const | 1 | | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------+ +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ | 1 | SIMPLE | person | range | PRIMARY | PRIMARY | 34 | NULL | 1484 | Using where | +----+-------------+--------+-------+---------------+---------+---------+------+------+-------------+ 実行時のソートは 発生していないか
24.
どうする?
25.
→ インデックスをつくる
26.
ストレージエンジン •
データの入れ物 • MySQL ではプラッガブル •InnoDB, MyISAM, Memory, Spider, Mroonga... • それぞれ得意・不得意などがある
27.
どれを使うべきか •迷ったら InnoDB が無難 •
トランザクションが使える • ロックが行単位 (MyISAM はテーブルロック) •デフォルトでは MyISAM になって しまうので注意
28.
アーキテクチャまとめ (1) • MySQL は様々なモジュールから成 る •それぞれについて知ることで最適化の ヒントを得ることができる
29.
アーキテクチャまとめ (2) • クエリキャッシュの効く クエリを書こう •インデックスを適切に設定しよう •とりあえず EXPLAIN
を見よう • 迷ったら InnoDB
30.
インデックス を使うと 何故速い?
31.
参考動画
http://academicearth.org/lectures/run-times-and-algorithms-recursion 4:30 あたり ※単純化のために二分探索 (Binary Search) を 取り上げていますが, MySQL では B-Tree によ る探索が使われています (根本的な原理はだいたい 一緒 (のはず (?)))
32.
二分探索木を 体験しよう
(デモ)
33.
適切にインデックスを作ると •予めソートされたデータが作られる • 関係無いレコードを効率よく除外 •検索が速くなる •レコードの挿入・更新時にコスト
34.
Happy MySQL Life!
35.
ご清聴 ありがとう ございました
Descargar ahora