SlideShare une entreprise Scribd logo
1  sur  47
Télécharger pour lire hors ligne
MySQL パラメーターチューニングの
理屈と定石

2014/03/01
yoku0825@MyNA
OSC 2014 Tokyo Spring
\こんにちは/
●

●

●
●

とある企業のDBA
● オラクれない
● ポスグれない
● マイエスキューエる
その正体は
● 嫁の夫
● せがれの父
日本 MySQL ユーザ会 (MyNA) のすべり担当
#mysql_jp でツッコミをいただけると幸い
おしながき
●
●

MySQL のパラメーターとは何か
根性論(理屈)
●

●

●
●

実際役に立つかどうかは置いておいて、
基本的な考え方
これはきっと MySQL に限らないはず

調査に使うコマンドとか
のりたまふりかけ(定石)
MySQL のパラメーターとは
●

基本的に「ハードウェアのリソースを使い切ら
ないための安全弁」
●
●

●
●

●

低すぎると性能が頭打ちされるし
高すぎると不安定になったりリソースを食い合って
性能を下げたり
基本的には「必要なぶん + 余裕度」
「必要なぶん」の最適値は環境によって違うし、見
積りがとても難しい
現状足りているか足りていないかは多少調べがつく
性能
必要リソース

リソースの競合

割当リソース
根性論(理屈)
●

とにかく比較するしかない
●

パラメーターを { 上げ | 下げ } てみる
–
–

●

●

性能が上がってるならまだ足りてない
性能が下がってるなら割り当てすぎてる

2 か所以上を同時に変更してはいけない

目の前にあるものを直視する
●
●

速くしたいのは今目の前にあるアクセスパターン
ベンチマークで速くなった、誰かが上手くやったパ
ラメーターをそのまま適用しても、目の前のものも
速くなるとは限らない
根性論(理屈)
●

限界値 , 定常値を知る
●

●

パラメーターをどれだけ変えても、ハードウェアの
限界値を超えて性能を出すことはできない
今の状況は、まだ頑張れば伸びる ( はず ) なのか、
もう諦め時なのか
–

●

1 年間チューニングして、 1ms 速くなりましたって訳に
はいかないのも含む

目的を絞る
●

性能 = Σ( 速さ , 可用性 , 安定性 , 運用性 , ..)
–

●

速さ = Σ( レスポンスタイム , スループット , ..)

基本的にトレードオフ。何を捨てて、何を得るの
か。
根性論(理屈)
●

継続的に改善する
●

●

●

パラメーターの最適値が見つかったとしても、それ
は「その時点での」最適値にすぎない
新しいクエリーがリリースされれば、新しい最適値
が生まれる

パラメーターだけにこだわらない
●
●

他にもチューニングできる箇所はたくさんあるはず
概して、パラメーターいじるより SQL 変えた方が高
速化には寄与することが多い
調べ方
比較する
●

一番シンプルなのは、本番機で innotop と
dstat 流しながら SET GLOBAL ..
●

●

変更前後で「ほぼ同じメモリー状態に」「ほぼ同じ
クエリー」が「ほぼ同じ量」流れてくることが期待
できるので、パラメーター変更に本当に効果があっ
たかどうかが一番測りやすい。
ユーザー企業でよかったと思う瞬間。
SET GLOBAL で変更するとき
●

グローバルでしか存在しないもの
●

●

変更した瞬間からその値で処理が始まる

グローバルもセッションも存在するもの
●

●

●

グローバル値は基本的にセッション値の暗黙のデ
フォルト値
セッション値が新しく作られる (= コネクション
の ) タイミング以外ではグローバル値の変更は効果
を及ぼさない
セッション値が実効パラメーター
SET GLOBAL で変更するとき
●

反映に再起動が必要なものは
●

mysqld を再起動するとメモリー状態は盛大に変わ
る
–
–

5.6 で InnoDB Buffer Pool Dump が入ったとはいえ
キャッシュ状態が違うと、比べた結果がアテにならな
かったりもする
●

●

自分でキャッシュ状態をある程度一定に保つテクニックが必要

簡単に再起動できない mysqld もある
–

基本的にはこの類のパラメーターは事前に計算しておく
のが必要
目の前にあるもの
●

問題が起きている箇所を特定する
●
●

スロークエリーログ
innotop で Time, State を観察
–

●

●

SHOW FULL PROCESSLIST でもいい

SHOW GLOBAL STATUS;

どのパラメーターをいじるべきか考える
●

EXPLAIN で、 SQL 側の問題ではないことを確認して
おく
–

●

クソクエリーはパラメーターじゃ速くならない

profile で「どのステップで問題なのか」を調べる
–

I/O がイケてないのに、ソートのパラメーターを変えて
もダメ
どこに効く
パラメーターが
必要?
SHOW GLOBAL STATUS
●
●
●
●
●
●
●

なんちゃら disk なんちゃらとか
なんちゃら cache とか
InnoDB なんちゃら pending なんちゃらとか
sort なんちゃらとか
thread なんちゃらとか
table_open_cache なんちゃらとか
どれがカウントアップされたらどのパラメー
ターをいじるのかはリファレンスとにらめっこ
●

http://dev.mysql.com/doc/refman/5.6/en/serverstatus-variables.html
SHOW ENGINE INNODB STATUS
●
●

SEMAPHORES セクション
TRANSACTIONS セクション
●

●

FILE I/O セクション
●

●
●

たまにどこのラッチがほしくて待ってるかの細かい
情報が出る
Pending なんちゃら

LOG セクション
BUFFER POOL AND MEMORY セクション
performance_schema
●
●

●
●
●

5.6 でだいぶ取れる情報が増えた
とはいえ、 performance_schema 自体の情報が
少なくて今がんばってる
オーバーヘッド怖い
メモリーごりごり食う
ps_helper と直アクセスと使い分ける感じにな
りそう
限界値を知る
●

ベンチマークソフトが良く使われる
●
●

●

ストレージの速度 fio
MySQL の OLTP 的なクエリーを流しまくる
sysbench, tpcc-mysql

カタログスペック的なイメージ
●

●

飽くまでも参考値というか、「どう頑張ってもこれ
以上は出ないだろうなー」という感じ
今の状態が、ちょっと頑張れば伸びそうなのか、頑
張れば伸びるだろうけど伸びは悪そうなのか、これ
以上はスケールするしかないのか
定常値を知る
●

グラフ化しておくとべんり
●
●

●

●

●

●

Percona Monitoring Plugins for Cacti
ドリルダウンして調べたい時はお手製スクリプト

パラメーター変更後に効果が出たのか出なかっ
たのか
タイミングの問題で気付けないことが長いスパ
ンの中で現れてくることも
パラメーターに限らずトラブルシュート全般に
役立ちます
継続的な改善にも必須
Percona Monitoring Plugins
for Cacti
パラメーターだけにこだわらない
●

飽くまで 1 手段に過ぎない
●
●
●
●
●
●

ハードウェアを変える
パラメーターを変える
テーブル構造を変える
SQLを変える
バイナリーを変える
OS レイヤーのパラメーターを変える
ハードウェアリソース
●

全ての処理が無限に速くなれば処理時間も無限
に 0 に近付く
●
●

●

リソースの競合が始まるタイミングを決める
●

●

個々の動作の高速化
あって困ることはない
なくて困ることはある

現状の構成でまだイケるのか、スケールどきな
のかはベンチマークソフトで測るのが便利
●

大体にして、似た様なクエリーの他のサーバーをモ
デルにすることも多い
性能
必要リソース

リソースの競合

割当リソース
テーブル構造
●

適切なインデックス
●
●

●
●

インデックスは「ソート済みのデータの複製」
検索には ( オプティマイザーの戸惑いを除いて ) 悪
影響はなし
更新には必ずオーバーヘッドになる
大概の場合「要るなら作る」の一択だが、書き込み
ボトルネックになっているなら「マスターからは消
す、スレーブには残す」とか考える
–

運用的なツラみとのトレードオフ
テーブル構造
●

適度な正規化
●
●
●

●
●

●

基本は全力で正規化するべき
非正規化した方が GROUP BY とか当然速い
非正規化するとデータ量が増えたり、 1 トランザク
ション内で更新する箇所が増えて I/O 増えたり、不
整合が発生する可能性も
非正規化はダーティーハック
ダーティーハックであることを忘れてスタンダード
になるとツラい

ストレージエンジン
●

基本的には InnoDB 統一がいいんですが
SQL を変える
●

MySQL はあんまり難しいことできない
●
●
●

●

何とかとハサミは使いよう
●
●

●

ORDER BY .. ASC, .. DESC とか
相関サブクエリーとか
多段で JOIN とか、テンポラリーテーブル使ったり
アプリ側でマージしたり
MySQL が無理せずできることだけやらせる
ループや関数演算はアプリ側に持たせてやると幸せ
になることが多い

○racle DB はなんだかんだ言ってすごい
●

アレを基準にすると 3 歳児レベルだと思った方が
バイナリーを変える
●

●

メジャーバージョンアップで機能が強化されて
たり
本家 MySQL 以外の選択肢
●
●
●
●
●

Facebook MySQL
Twitter MySQL
MariaDB
Percona Server
PostgreSQL
OS レイヤーを変える
●
●
●
●
●
●

ext3 より ext4 の方が性能が良いとか
マウントオプション noatime とか
queue/scheduler を deadline とか noop とか
numactl とか
Transparent Hugepage とか
概して情報量が少ないけれど
のりたまふりかけ
●

カジュアルに変更できないやつ
●

●

innodb_buffer_pool_size, innodb_log_file_size,
innodb_log_files_in_group,
innodb_flush_log_at_trx_commit,
query_cache_size( を減らす )

カジュアルに変更で対応するやつ
●

max_connections, thread_cache_size,
table_open_cache, max_heap_table_size,
tmp_table_size, read_buffer_size,
read_rnd_buffer_size, sort_buffer_size,
join_buffer_size, binlog_cache_size,
key_buffer_size, innodb_io_capacity,
innodb_io_capacity_max
innodb_buffer_pool_size
●
●

InnoDB で一番性能に直結するパラメーター
バッファプールは「データ , インデックスの
キャッシュ」だけではなく、「最初にデータが
書かれる場所」でもある
●

●

INSERT, DELETE でも使う

マニュアルのいわく、物理メモリーの 80% 以上
割り当てろ
●

●

InnoDB が使うメモリーはさらに 1 割くらいオー
バーヘッドが載る
( 余裕度込みで ) データが全て収まるのが理想
机上で計算
●

データサイズ
●

●

●

インデックスサイズ
●

●

http://dev.mysql.com/doc/refman/5.6/en/storage
-requirements.html
↑ あたりを参考に
インデックスに含まれるカラムのデータサイズ +
プライマリキーのサイズ

とはいえ大体 varchar, text 型のサイズ *
キャラクターセット が支配する
●

utf8 で varchar(255) を含むテーブル =>
800bytes/row 弱
バッファプール確認
●

●

mysql> SELECT SUM(data_length) AS data_length, SUM(index_length) AS
index_length FROM information_schema.tables WHERE engine= 'InnoDB';
+-------------+--------------+
| data_length | index_length |
+-------------+--------------+
|
156237824 |
32522240 |
+-------------+--------------+
1 row in set (0.04 sec)
mysql> SHOW ENGINE INNODB STATUSG
..
---------------------BUFFER POOL AND MEMORY
---------------------Total memory allocated 38425067520; in additional pool allocated 0
Dictionary memory allocated 708200
Buffer pool size
2293759
Free buffers
2281361
Database pages
9526
Old database pages 3496
..
バッファプール確認
●

●

mysql> SHOW ENGINE INNODB STATUSG
..
---------------------BUFFER POOL AND MEMORY
---------------------..
Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not
0 / 1000
..
mysql> SHOW GLOBAL STATUS LIKE 'innodb_buffer_%read%';
+---------------------------------------+---------------+
| Variable_name
| Value
|
+---------------------------------------+---------------+
| Innodb_buffer_pool_read_ahead
| 5691980889
|
| Innodb_buffer_pool_read_ahead_evicted | 11862757
|
| Innodb_buffer_pool_read_requests
| 2074130774514 |
| Innodb_buffer_pool_reads
| 136410489
|
+---------------------------------------+---------------+
4 rows in set (0.00 sec)
innodb_log_file_size
●

●

5.6 未満では、反映に再起動のみならず
ib_logfile* の再作成が必要だった
ログファイルの性能は
innodb_log_file_size*
innodb_log_files_in_group に比例する
●
●

●

個人的には innodb_log_files_in_group は 2 でいい
ログファイルの性能は書き込み処理に影響

5.5 未満では増やしすぎるとクラッシュリカバ
リーに時間がかかるらしい
●

5.5 以降なら、変更のしにくさも鑑みて予め大きめ
にして良いと思う
ログファイル確認
●

●

mysql> SHOW ENGINE INNODB STATUSG
..
--LOG
--Log sequence number 158185651300
Log flushed up to
158185651244
Last checkpoint at 158185645072
0 pending log writes, 0 pending chkp writes
..
# pt-ioprofile --cell sizes --run-time 10
Tracing process ID xxxx
total
pread
read
pwrite
lseek filename
..
34304
0
0
34304
0 /data/mysql/ib_logfile1
0
0
0
0
0 /data/mysql/ib_logfile0

write

fsync

0

0

0

0
innodb_flush_log_at_trx_commit
●

クラッシュした時に、 * 必ず * データをバッ
クアップなり何なりから戻す気があるかどうか
●

あるなら = 0 で、ついでに skip-innodbdoublewrite してもいいです
–

●

skip-innodb-doublewrite や innodb-flush-log-at-trxcommit!= 1 は「 { 失う | 壊れる } かも知れない」ではな
くて「 { 失って | 壊れて } もまったく検知できない」

とりあえず起動して試して、ダメだったら…とかい
うフローにしたいなら、 = 1 で
query_cache_size
●

●

●

基本的には query_cache_type=
query_cache_size= 0 で起動したい
SHOW PROCESSLIST で見たときに、 "Waiting
for query cache lock" が目立つなら切った方
が良い
オンラインで増やすのは別にいいんだけど、減
らす時は Query Cache がまるっとロックされる
ので時間が止まる
どうせ後で変えるやつら
●

read_buffer_size= read_rnd_buffer_size= 2M
sort_buffer_size= join_buffer_size= 8M
●

●
●
●
●
●

基本、ここから減らすこと前提

thread_cache_size= 70
table_open_cache= 2048
max_heap_table_size= tmp_table_size= 128M
binlog_cache_size= 8M
max_connections= 151
●

500 とかやると何かあった時にサーバー死ぬ
あんまり変えない奴ら
●
●
●
●
●
●
●
●

binlog_format= MIXED
max_binlog_size= max_relay_log_size= 256M
relay_log_info_repository= TABLE
relay_log_recovery= 1
skip_name_resolve
tmpdir は datadir の隣辺りに置いてる
slave_load_tmpdir
character_set_server

Contenu connexe

Tendances

MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやyoku0825
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説Masahiko Sawada
 
基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をします基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をしますyoku0825
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門yoku0825
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターンyoku0825
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことyoku0825
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 
MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MicroAd, Inc.(Engineer)
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニングCraft works
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングKosuke Kida
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
MySQLの運用でありがちなこと
MySQLの運用でありがちなことMySQLの運用でありがちなこと
MySQLの運用でありがちなことHiroaki Sano
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 

Tendances (20)

MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017MySQL8.0 in COSCUP2017
MySQL8.0 in COSCUP2017
 
MySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれやMySQLレプリケーションあれやこれや
MySQLレプリケーションあれやこれや
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
 
基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をします基本に戻ってInnoDBの話をします
基本に戻ってInnoDBの話をします
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターン
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編MySQL勉強会 クエリチューニング編
MySQL勉強会 クエリチューニング編
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
MySQL 初めてのチューニング
MySQL 初めてのチューニングMySQL 初めてのチューニング
MySQL 初めてのチューニング
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
まずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニングまずやっとくPostgreSQLチューニング
まずやっとくPostgreSQLチューニング
 
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_standbyの今後について(第19回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
MySQLの運用でありがちなこと
MySQLの運用でありがちなことMySQLの運用でありがちなこと
MySQLの運用でありがちなこと
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 

En vedette

What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBMikiya Okuno
 
ゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバーゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバーKimitoshi Takahashi
 
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編Mikiya Okuno
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリングyoku0825
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門Mikiya Okuno
 
超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual鉄次 尾形
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことyoku0825
 

En vedette (7)

What's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDBWhat's New in MySQL 5.7 InnoDB
What's New in MySQL 5.7 InnoDB
 
ゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバーゆるふわMySQLフェイルオーバー
ゆるふわMySQLフェイルオーバー
 
MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編MySQL 5.7 トラブルシューティング 性能解析入門編
MySQL 5.7 トラブルシューティング 性能解析入門編
 
MySQLステータスモニタリング
MySQLステータスモニタリングMySQLステータスモニタリング
MySQLステータスモニタリング
 
MySQLトラブル解析入門
MySQLトラブル解析入門MySQLトラブル解析入門
MySQLトラブル解析入門
 
超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual
 
MySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいことMySQL 8.0で憶えておいてほしいこと
MySQL 8.0で憶えておいてほしいこと
 

Similaire à MySQLチューニング

PostgreSQL使いのエンジニアから見たMySQL
PostgreSQL使いのエンジニアから見たMySQLPostgreSQL使いのエンジニアから見たMySQL
PostgreSQL使いのエンジニアから見たMySQLtoshihiro_kitagawa
 
Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6yoku0825
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会Mikiya Okuno
 
Dat004 開発者に捧ぐ「sql server_2016_
Dat004 開発者に捧ぐ「sql server_2016_Dat004 開発者に捧ぐ「sql server_2016_
Dat004 開発者に捧ぐ「sql server_2016_Tech Summit 2016
 
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~sakaik
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jpyoyamasaki
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06Mikiya Okuno
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.pptNaoya Ito
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べMasahiro Nagano
 
MySQL clients
MySQL clientsMySQL clients
MySQL clientsyoku0825
 
道具を磨くことのススメ
道具を磨くことのススメ道具を磨くことのススメ
道具を磨くことのススメKenichi Masuda
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Yoichi Kawasaki
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0Ryusuke Kajiyama
 
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiGpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiShotaro Suzuki
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSNoriyoshi Shinoda
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]Hideo Takagi
 
いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡sakaik
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudyTakahiro Iwase
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINE Corporation
 

Similaire à MySQLチューニング (20)

PostgreSQL使いのエンジニアから見たMySQL
PostgreSQL使いのエンジニアから見たMySQLPostgreSQL使いのエンジニアから見たMySQL
PostgreSQL使いのエンジニアから見たMySQL
 
Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会MySQl 5.6新機能解説@第一回 中国地方DB勉強会
MySQl 5.6新機能解説@第一回 中国地方DB勉強会
 
Dat004 開発者に捧ぐ「sql server_2016_
Dat004 開発者に捧ぐ「sql server_2016_Dat004 開発者に捧ぐ「sql server_2016_
Dat004 開発者に捧ぐ「sql server_2016_
 
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
 
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
 
081108huge_data.ppt
081108huge_data.ppt081108huge_data.ppt
081108huge_data.ppt
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
 
道具を磨くことのススメ
道具を磨くことのススメ道具を磨くことのススメ
道具を磨くことのススメ
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
 
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
[OSC 2017 Tokyo/Fall] OSSコンソーシアム DB部会 MySQL 8.0
 
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure aiGpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
Gpu accelerates aimodeldevelopmentandanalyticsutilizingelasticsearchandazure ai
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡いまいまMySQL@OSC2016長岡
いまいまMySQL@OSC2016長岡
 
20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy20110519 okuyama tokyo_linuxstudy
20110519 okuyama tokyo_linuxstudy
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 

Plus de yoku0825

逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分かyoku0825
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技yoku0825
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略yoku0825
 
わかった気になるMySQL
わかった気になるMySQLわかった気になるMySQL
わかった気になるMySQLyoku0825
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術yoku0825
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうyoku0825
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験yoku0825
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plusyoku0825
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはyoku0825
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具yoku0825
 
MHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQLMHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQLyoku0825
 
5.7の次のMySQL
5.7の次のMySQL5.7の次のMySQL
5.7の次のMySQLyoku0825
 
mikasafabric for MySQL
mikasafabric for MySQLmikasafabric for MySQL
mikasafabric for MySQLyoku0825
 
とあるイルカの近況報告
とあるイルカの近況報告とあるイルカの近況報告
とあるイルカの近況報告yoku0825
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなしyoku0825
 
MySQLと正規形のはなし
MySQLと正規形のはなしMySQLと正規形のはなし
MySQLと正規形のはなしyoku0825
 
MySQLおじさんの逆襲
MySQLおじさんの逆襲MySQLおじさんの逆襲
MySQLおじさんの逆襲yoku0825
 
地雷職人の朝は早い
地雷職人の朝は早い地雷職人の朝は早い
地雷職人の朝は早いyoku0825
 
ペパボ de MySQL
ペパボ de MySQLペパボ de MySQL
ペパボ de MySQLyoku0825
 
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションイルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションyoku0825
 

Plus de yoku0825 (20)

逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か逝くぞ最新版、罠の貯蔵は十分か
逝くぞ最新版、罠の貯蔵は十分か
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
 
片手間MySQLチューニング戦略
片手間MySQLチューニング戦略片手間MySQLチューニング戦略
片手間MySQLチューニング戦略
 
わかった気になるMySQL
わかった気になるMySQLわかった気になるMySQL
わかった気になるMySQL
 
わたしを支える技術
わたしを支える技術わたしを支える技術
わたしを支える技術
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
 
Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験Dockerイメージで誰でも気軽にMroonga体験
Dockerイメージで誰でも気軽にMroonga体験
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plus
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLは
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具
 
MHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQLMHAの次を目指す mikasafabric for MySQL
MHAの次を目指す mikasafabric for MySQL
 
5.7の次のMySQL
5.7の次のMySQL5.7の次のMySQL
5.7の次のMySQL
 
mikasafabric for MySQL
mikasafabric for MySQLmikasafabric for MySQL
mikasafabric for MySQL
 
とあるイルカの近況報告
とあるイルカの近況報告とあるイルカの近況報告
とあるイルカの近況報告
 
MySQL Fabricでぼっこぼこにされたはなし
MySQL FabricでぼっこぼこにされたはなしMySQL Fabricでぼっこぼこにされたはなし
MySQL Fabricでぼっこぼこにされたはなし
 
MySQLと正規形のはなし
MySQLと正規形のはなしMySQLと正規形のはなし
MySQLと正規形のはなし
 
MySQLおじさんの逆襲
MySQLおじさんの逆襲MySQLおじさんの逆襲
MySQLおじさんの逆襲
 
地雷職人の朝は早い
地雷職人の朝は早い地雷職人の朝は早い
地雷職人の朝は早い
 
ペパボ de MySQL
ペパボ de MySQLペパボ de MySQL
ペパボ de MySQL
 
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーションイルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
イルカさんチームからゾウさんチームに教えたいMySQLレプリケーション
 

MySQLチューニング