Submit Search
Upload
MySQLのパフォーマンスの話
•
Download as ODP, PDF
•
6 likes
•
2,103 views
T
Tetsuro Ikeda
Follow
ソースコードを通じて学ぶ MySQLのチューニングポイント
Read less
Read more
Technology
Report
Share
Report
Share
1 of 26
Download now
Recommended
AWSのRedHatにMySQL最速インストール
AWSのRedHatにMySQL最速インストール
sakaik
Clojureによるログ収集と解析
Clojureによるログ収集と解析
Yoshitaka Kawashima
Handlersocket 20140218
Handlersocket 20140218
akirahiguchi
Windowsでも使えるシェル
Windowsでも使えるシェル
Tetsuya Hasegawa
Lt 110205
Lt 110205
Tomoyuki Obi
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
Naoki Sega
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
Takahiro Okumura
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
学 松崎
Recommended
AWSのRedHatにMySQL最速インストール
AWSのRedHatにMySQL最速インストール
sakaik
Clojureによるログ収集と解析
Clojureによるログ収集と解析
Yoshitaka Kawashima
Handlersocket 20140218
Handlersocket 20140218
akirahiguchi
Windowsでも使えるシェル
Windowsでも使えるシェル
Tetsuya Hasegawa
Lt 110205
Lt 110205
Tomoyuki Obi
CasualなMongoDBのサービス運用Tips
CasualなMongoDBのサービス運用Tips
Naoki Sega
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
MySQL 4.0で9年動き続けたサーバを リプレイスしてバージョンアップした話
Takahiro Okumura
MySQL Casual Talks in Fukuoka vol.2
MySQL Casual Talks in Fukuoka vol.2
学 松崎
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24
Yoshihiko Matsuzaki
Mysql casial01
Mysql casial01
matsuo kenji
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
MySQL Clusterのトラブル事例
MySQL Clusterのトラブル事例
hiroi10
キメるClojure
キメるClojure
Yoshitaka Kawashima
ebisu.rb #19 超実践 super
ebisu.rb #19 超実践 super
Kaito Minatoya
今日からはじめるCSP(Kernel/VM@Okinawa)
今日からはじめるCSP(Kernel/VM@Okinawa)
cocoa_dahlia
Mysql toranomaki
Mysql toranomaki
Mikiya Okuno
カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明
Masakazu Matsushita
ゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバー
Kimitoshi Takahashi
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
David Buck
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
Hitoshi Asai
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
Takanori Sejima
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
Shoken Fujisaki
ブラウザとWebサーバとXSSの話@Shibuya.xss
ブラウザとWebサーバとXSSの話@Shibuya.xss
Toshiharu Sugiyama
覚醒!JavaScript
覚醒!JavaScript
Haraguchi Go
MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間
hiroi10
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
VPとSPIDERを使ったMySQL運用
VPとSPIDERを使ったMySQL運用
Ryuta Kamizono
Handlersocket 20110517
Handlersocket 20110517
akirahiguchi
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
More Related Content
What's hot
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
Makoto Haruyama
MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24
Yoshihiko Matsuzaki
Mysql casial01
Mysql casial01
matsuo kenji
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
MySQL Clusterのトラブル事例
MySQL Clusterのトラブル事例
hiroi10
キメるClojure
キメるClojure
Yoshitaka Kawashima
ebisu.rb #19 超実践 super
ebisu.rb #19 超実践 super
Kaito Minatoya
今日からはじめるCSP(Kernel/VM@Okinawa)
今日からはじめるCSP(Kernel/VM@Okinawa)
cocoa_dahlia
Mysql toranomaki
Mysql toranomaki
Mikiya Okuno
カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明
Masakazu Matsushita
ゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバー
Kimitoshi Takahashi
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
David Buck
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
Hitoshi Asai
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
Takanori Sejima
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
Shoken Fujisaki
ブラウザとWebサーバとXSSの話@Shibuya.xss
ブラウザとWebサーバとXSSの話@Shibuya.xss
Toshiharu Sugiyama
覚醒!JavaScript
覚醒!JavaScript
Haraguchi Go
MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間
hiroi10
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
VPとSPIDERを使ったMySQL運用
VPとSPIDERを使ったMySQL運用
Ryuta Kamizono
What's hot
(20)
My sql casual_in_fukuoka_vol1
My sql casual_in_fukuoka_vol1
MySQLの冗長化 2013-01-24
MySQLの冗長化 2013-01-24
Mysql casial01
Mysql casial01
T sql の parse と generator
T sql の parse と generator
MySQL Clusterのトラブル事例
MySQL Clusterのトラブル事例
キメるClojure
キメるClojure
ebisu.rb #19 超実践 super
ebisu.rb #19 超実践 super
今日からはじめるCSP(Kernel/VM@Okinawa)
今日からはじめるCSP(Kernel/VM@Okinawa)
Mysql toranomaki
Mysql toranomaki
カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明
ゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバー
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
Java Concurrency, A(nother) Peek Under the Hood [Java Day Tokyo 2016 3-C]
MongoDBではじめるカジュアルなタイムラインシステム
MongoDBではじめるカジュアルなタイムラインシステム
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
MongoDB Configパラメータ解説
MongoDB Configパラメータ解説
ブラウザとWebサーバとXSSの話@Shibuya.xss
ブラウザとWebサーバとXSSの話@Shibuya.xss
覚醒!JavaScript
覚醒!JavaScript
MySQL Clusterを運用して10ヶ月間
MySQL Clusterを運用して10ヶ月間
tcpdump & xtrabackup @ MySQL Casual Talks #1
tcpdump & xtrabackup @ MySQL Casual Talks #1
VPとSPIDERを使ったMySQL運用
VPとSPIDERを使ったMySQL運用
Similar to MySQLのパフォーマンスの話
Handlersocket 20110517
Handlersocket 20110517
akirahiguchi
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
20120117 13 meister-elasti_cache-public
20120117 13 meister-elasti_cache-public
Amazon Web Services Japan
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
SORACOM, INC
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Masahiro Nagano
Amazon ElastiCacheのはじめ方
Amazon ElastiCacheのはじめ方
Amazon Web Services Japan
Handlersocket etc. 20110906
Handlersocket etc. 20110906
akirahiguchi
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
akirahiguchi
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
Masahiro Nagano
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
純生 野田
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
MariaDB migration from commercial database
MariaDB migration from commercial database
GOTO Satoru
Q4 Mでメッセージキュー
Q4 Mでメッセージキュー
ngi group.
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Akihiro Kuwano
Apache Torqueについて
Apache Torqueについて
tako pons
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Iwana Chan
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
Taro Hirose
関西DB勉強会ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
関西DB勉強会ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
KAWANO KAZUYUKI
Similar to MySQLのパフォーマンスの話
(20)
Handlersocket 20110517
Handlersocket 20110517
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
20120117 13 meister-elasti_cache-public
20120117 13 meister-elasti_cache-public
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
Web Operations and Perl kansai.pm#14
Web Operations and Perl kansai.pm#14
Amazon ElastiCacheのはじめ方
Amazon ElastiCacheのはじめ方
Handlersocket etc. 20110906
Handlersocket etc. 20110906
HandlerSocket plugin for MySQL
HandlerSocket plugin for MySQL
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
ISUCONの勝ち方 YAPC::Asia Tokyo 2015
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
MTのダイナミック処理(PHP)を高速化する@サーバーサイドスクリプティング
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
MariaDB migration from commercial database
MariaDB migration from commercial database
Q4 Mでメッセージキュー
Q4 Mでメッセージキュー
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
Apache Torqueについて
Apache Torqueについて
Webサーバのチューニング
Webサーバのチューニング
社内勉強会資料(Varnish Module)
社内勉強会資料(Varnish Module)
Ansible 入門 #01 (初心者向け)
Ansible 入門 #01 (初心者向け)
関西DB勉強会ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
関西DB勉強会ver : MariaDB ColumnStore ベンチマークしちゃいませんか?
Recently uploaded
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
Recently uploaded
(8)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
MySQLのパフォーマンスの話
1.
MySQL のパフォーマンスの話 ソースコードを通じて学ぶ
MySQL のチューニングポイント Tetsuro IKEDA @ 2009/08/28
2.
3.
4.
5.
6.
7.
クライアントはclientディレクトリ
8.
ストレージエンジンは独自のディレクトリ
9.
それ以外はユーティリティ/依存ライブラリ
10.
11.
プロトコル処理
12.
SQLパーサー
13.
オプティマイザ
14.
実行制御と結果送信
15.
ストレージエンジン
16.
※gdbでbacktraceを取れば1発で分かる
17.
18.
mysqldの起動引数として指定する
19.
SET文で変更する
20.
SHOW VARIAZLES文で確認する
21.
22.
5.1以上のpluggable storage engineは別枠
23.
グローバル変数とセッション変数がある
24.
各パラメータ用のGlobal変数
25.
Globalなglobal_system_variables変数
26.
Class THDのvariables変数
27.
※emacs+cscopeで簡単に調査可能
28.
29.
SHOW STATUS文で確認できる
30.
SQL文を実行すると増えたりする
31.
グローバル変数とセッション変数がある
32.
33.
sql_class.hのsystem_status_var構造体で定義
34.
Globalなglobal_system_variables変数
35.
Class THDのstatus_var変数
36.
※emacs+cscopeで簡単に調査可能
37.
38.
1年くらい前に発売
39.
中上級者向け
40.
ソースの話もあり
41.
42.
max_connections を越える接続ができるって本当?
43.
44.
sql_select.cc:10173行目
45.
CREATE TABLE …
MAX_ROWS=# と同じ
46.
一時テーブルでは値の小さい方が採用される if (thd->variables.tmp_table_size
== ~ (ulonglong) 0) // No limit share->max_rows= ~(ha_rows) 0; else share->max_rows= (ha_rows) (((share->db_type() == heap_hton) ? min(thd->variables.tmp_table_size, thd->variables.max_heap_table_size) : thd->variables.tmp_table_size) / share->reclength);
47.
48.
sql_connect.cc:406行目
49.
connection_cound(既存の接続数)がmax_connections以下の場合のみOK
50.
ただしSUPER_ACL保有者は例外
51.
つまり特権ユーザは”Too many connections”でも接続できる
bool count_ok= connection_count <= max_connections || (thd->main_security_ctx.master_access & SUPER_ACL);
52.
53.
Handler_XXX が異常に増加します
54.
-> ストレージエンジンて何やってるんですか?
55.
56.
sql_parse.cc:2137行目
57.
lexはSQLパーサー解析結果
58.
59.
60.
例:ha_myisam.cc:1750行目
61.
62.
63.
handler::rnd_next ->
OK
64.
handler::rnd_next ->
OK
65.
handler::rnd_next ->
OK
66.
…
67.
handler::rnd_next ->
EOF
68.
69.
handler::rnd_next ->
OK
70.
handler::rnd_next ->
OK
71.
LIMIT条件を満たしたところで終了
72.
73.
handler::rnd_next ->
OK
74.
handler::position -> row_idを受け取っておく
75.
…
76.
handler::rnd_next -> EOF
77.
sort_bufferを使ったquick sort処理
78.
handler::rnd_pos -> OK
79.
handler::rnd_pos -> OK
80.
81.
handler::rnd_next ->
はずれ
82.
handler::rnd_next ->
あたり
83.
handler::update ->
更新
84.
handler::rnd_next ->
はずれ
85.
handler::rnd_next ->
あたり
86.
handler::update ->
更新
87.
handler::rnd_next -> EOF
88.
89.
高性能なサーバを用意する
90.
サーバをたくさん用意する
91.
スキーマチューニングをする
92.
パラメータチューニングをする
93.
MySQLを改造して抜本的な高速化を試みる
94.
95.
96.
97.
転置インデックスの仕組みの違い レコード単位転置 インデックス
完全転置 インデックス インデックスされる情報 単語IDとレコードIDのペアのみ保持 単語IDとレコードIDに加えて、レコード内の出現位置も保持 インデックスサイズ 小さい 大きい 検索性能 フレーズ検索で低速化 フレーズ検索も高速
98.
99.
参照/更新時のテーブルロック
100.
101.
102.
MySQL 5.1で搭載されたPluggable Storage
Engine Interfaceを利用、疎結合
103.
カラム単位ストレージ
104.
Fulltext、Hash、Patricia treeの3種類のインデックスをサポート
105.
106.
107.
質問はありますか?
108.
@ikdttr にご連絡下さい(via Twitter)
Download now