Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Craft works
14,809 views
MySQL 初めてのチューニング
MySQL Casual Talks #1 発表資料 http://atnd.org/events/9803
Technology
◦
Read more
67
Save
Share
Embed
Embed presentation
Download
Downloaded 193 times
1
/ 32
2
/ 32
3
/ 32
4
/ 32
5
/ 32
6
/ 32
7
/ 32
8
/ 32
9
/ 32
10
/ 32
11
/ 32
12
/ 32
13
/ 32
14
/ 32
15
/ 32
16
/ 32
17
/ 32
18
/ 32
19
/ 32
20
/ 32
21
/ 32
22
/ 32
23
/ 32
24
/ 32
25
/ 32
26
/ 32
27
/ 32
28
/ 32
29
/ 32
30
/ 32
31
/ 32
32
/ 32
More Related Content
PDF
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
by
NGINX, Inc.
PDF
MySQLチューニング
by
yoku0825
PDF
基本に戻ってInnoDBの話をします
by
yoku0825
PDF
EnrootとPyxisで快適コンテナ生活
by
Kuninobu SaSaki
PDF
Best practices for MySQL High Availability
by
Colin Charles
PDF
OSC北海道2014_JPUG資料
by
Chika SATO
PDF
さいきんの InnoDB Adaptive Flushing (仮)
by
Takanori Sejima
PPTX
MySQL_MariaDB-성능개선-202201.pptx
by
NeoClova
NGINXセミナー(基本編)~いまさら聞けないNGINXコンフィグなど基本がわかる!
by
NGINX, Inc.
MySQLチューニング
by
yoku0825
基本に戻ってInnoDBの話をします
by
yoku0825
EnrootとPyxisで快適コンテナ生活
by
Kuninobu SaSaki
Best practices for MySQL High Availability
by
Colin Charles
OSC北海道2014_JPUG資料
by
Chika SATO
さいきんの InnoDB Adaptive Flushing (仮)
by
Takanori Sejima
MySQL_MariaDB-성능개선-202201.pptx
by
NeoClova
What's hot
PDF
PostgreSQLでスケールアウト
by
Masahiko Sawada
PDF
わかった気になるMySQL
by
yoku0825
PDF
片手間MySQLチューニング戦略
by
yoku0825
PDF
MySQLおじさんの逆襲
by
yoku0825
PDF
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
by
infinite_loop
PDF
Innodb Deep Talk #2 でお話したスライド
by
Yasufumi Kinoshita
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
by
NTT DATA Technology & Innovation
PPTX
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
MariaDB 마이그레이션 - 네오클로바
by
NeoClova
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
by
NTT DATA Technology & Innovation
PDF
MySQLバックアップの基本
by
yoyamasaki
PDF
MySQLを割と一人で300台管理する技術
by
yoku0825
DOCX
MySQL_SQL_Tunning_v0.1.3.docx
by
NeoClova
PDF
MySQL 상태 메시지 분석 및 활용
by
I Goo Lee
PDF
MySQL Fabricでぼっこぼこにされたはなし
by
yoku0825
PDF
MySQL GTID 시작하기
by
I Goo Lee
PDF
MariaDB MaxScale monitor 매뉴얼
by
NeoClova
PDF
Maxscale_메뉴얼
by
NeoClova
PPTX
SQL Server のロック概要
by
Oda Shinsuke
PDF
TIME_WAITに関する話
by
Takanori Sejima
PostgreSQLでスケールアウト
by
Masahiko Sawada
わかった気になるMySQL
by
yoku0825
片手間MySQLチューニング戦略
by
yoku0825
MySQLおじさんの逆襲
by
yoku0825
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
by
infinite_loop
Innodb Deep Talk #2 でお話したスライド
by
Yasufumi Kinoshita
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
by
NTT DATA Technology & Innovation
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
MariaDB 마이그레이션 - 네오클로바
by
NeoClova
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
by
NTT DATA Technology & Innovation
MySQLバックアップの基本
by
yoyamasaki
MySQLを割と一人で300台管理する技術
by
yoku0825
MySQL_SQL_Tunning_v0.1.3.docx
by
NeoClova
MySQL 상태 메시지 분석 및 활용
by
I Goo Lee
MySQL Fabricでぼっこぼこにされたはなし
by
yoku0825
MySQL GTID 시작하기
by
I Goo Lee
MariaDB MaxScale monitor 매뉴얼
by
NeoClova
Maxscale_메뉴얼
by
NeoClova
SQL Server のロック概要
by
Oda Shinsuke
TIME_WAITに関する話
by
Takanori Sejima
Viewers also liked
PDF
カジュアルに本番データを開発環境に入れる #mysqlcasual
by
Kazuhiro Oinuma
PPT
Linux/DB Tuning (DevSumi2010, Japanese)
by
Yoshinori Matsunobu
PDF
メンテナブルでありつづけるためのCSS設計
by
拓樹 谷
PDF
Zabbixのパフォーマンスチューニング & インストール時の注意点
by
Kodai Terashima
PPTX
本当のオブジェクト指向は可読性を上げる
by
Wataru Terada
PDF
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
by
Masahiro Nagano
PDF
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
by
Aurimas Mikalauskas
PDF
MySQL 5.7にやられないためにおぼえておいてほしいこと
by
yoku0825
ODP
Memory management in Linux
by
Raghu Udiyar
PDF
逆説のスタートアップ思考
by
Takaaki Umada
カジュアルに本番データを開発環境に入れる #mysqlcasual
by
Kazuhiro Oinuma
Linux/DB Tuning (DevSumi2010, Japanese)
by
Yoshinori Matsunobu
メンテナブルでありつづけるためのCSS設計
by
拓樹 谷
Zabbixのパフォーマンスチューニング & インストール時の注意点
by
Kodai Terashima
本当のオブジェクト指向は可読性を上げる
by
Wataru Terada
Advanced nginx in mercari - How to handle over 1,200,000 HTTPS Reqs/Min
by
Masahiro Nagano
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
by
Aurimas Mikalauskas
MySQL 5.7にやられないためにおぼえておいてほしいこと
by
yoku0825
Memory management in Linux
by
Raghu Udiyar
逆説のスタートアップ思考
by
Takaaki Umada
Similar to MySQL 初めてのチューニング
PDF
Devsの常識、DBAは非常識
by
yoku0825
PPT
081108huge_data.ppt
by
Naoya Ito
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
PPTX
20150630_MySQL勉強会
by
masayoshi shiraishi
PDF
MySQL 5.7 トラブルシューティング 性能解析入門編
by
Mikiya Okuno
KEY
道具を磨くことのススメ
by
Kenichi Masuda
PPTX
MySQLの運用でありがちなこと
by
Hiroaki Sano
PDF
ペパボ de MySQL
by
yoku0825
PDF
お金をかけないDBチューニング
by
Kazuya Sato
PDF
MySQLステータスモニタリング
by
yoku0825
PPTX
【基礎編】社内向けMySQL勉強会
by
Yuji Otani
PDF
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
by
Insight Technology, Inc.
PPT
Maatkit で MySQL チューニング
by
Kensuke Nagae
PDF
Osc2015北海道 札幌my sql勉強会_波多野_r3
by
Nobuhiro Hatano
PDF
MySQL 5.5 Update #denatech
by
Mikiya Okuno
PDF
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
by
yoyamasaki
PPT
MySQL のチューニングについて考えてみた
by
Tokuhiro Matsuno
PDF
5.6 以前の InnoDB Flushing
by
Takanori Sejima
PDF
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
by
Yahoo!デベロッパーネットワーク
PDF
Index shotgun on mysql5.6
by
yoku0825
Devsの常識、DBAは非常識
by
yoku0825
081108huge_data.ppt
by
Naoya Ito
ヤフー社内でやってるMySQLチューニングセミナー大公開
by
Yahoo!デベロッパーネットワーク
20150630_MySQL勉強会
by
masayoshi shiraishi
MySQL 5.7 トラブルシューティング 性能解析入門編
by
Mikiya Okuno
道具を磨くことのススメ
by
Kenichi Masuda
MySQLの運用でありがちなこと
by
Hiroaki Sano
ペパボ de MySQL
by
yoku0825
お金をかけないDBチューニング
by
Kazuya Sato
MySQLステータスモニタリング
by
yoku0825
【基礎編】社内向けMySQL勉強会
by
Yuji Otani
[data analytics showcase] B12: サーバー1,000台を監視するということ by 株式会社インサイトテクノロジー 小幡 一郎
by
Insight Technology, Inc.
Maatkit で MySQL チューニング
by
Kensuke Nagae
Osc2015北海道 札幌my sql勉強会_波多野_r3
by
Nobuhiro Hatano
MySQL 5.5 Update #denatech
by
Mikiya Okuno
MySQL最新情報 ※2015年9月5日「第1回 関西DB勉強会」での発表資料
by
yoyamasaki
MySQL のチューニングについて考えてみた
by
Tokuhiro Matsuno
5.6 以前の InnoDB Flushing
by
Takanori Sejima
ヤフーのRDBと最新のMySQLの検証結果#yjdsw3
by
Yahoo!デベロッパーネットワーク
Index shotgun on mysql5.6
by
yoku0825
MySQL 初めてのチューニング
1.
MySQL 初めてのチューニング 2010/12/11
MySQL Casual Talks #1 id:Craftworks
2.
自己紹介 •
id:Craftworks • Twitter: @Craftworks • github: https://github.com/Craftworks • Blog: http://d.hatena.ne.jp/Craftworks • 最近は EC2 で Perl 書いてます • ずっと PostgreSQL を使っていた MySQL 初心者です
3.
今日は MySQL をセットアップしてから 最初にするチューニングの話をします
4.
MySQL のメモリ設定 MySQL のバッファタイプは2種類
グローバルバッファ • mysqld 全体で確保するメモリ スレッドバッファ • コネクション毎に確保するメモリ
5.
グローバルバッファ
6.
innodb_buffer_pool_size – InnoDB
のインデックスやレコードをキャッ シュする領域 – InnoDB メインで使うなら最重要パラメータ
7.
innodb_additional_mem_pool_size – InnoDB
テーブル定義情報 – 足りなくなったらエラーログに警告が出る – 足りなくなった時に増やせばよい
8.
innodb_log_buffer_size –
InnoDB トランザクションログを管理する領 域 – トランザクション終了時もしくは一定時間毎 にディスクにフラッシュされる – 他のパラメータにメモリを回した方が得策
9.
key_buffer_size –
MyISAM のインデックスをキャッシュする領 域 – MyISAM をあまり使わないなら他に回す
10.
query_cache_size – SELECT
の実行結果をキャッシュする – パフォーマンス的にはかなり重要 – query_cache_type でキャッシュ動作を指定 できる
11.
スレッドバッファ
12.
sort_buffer_size –
ORDER BY, GROUP BY に使われる領域 – 多用する場合は増やす read_rnd_buffer_size – ソート後にレコードを読む際に使用 – ORDER BY の性能向上
13.
join_buffer_size –
インデックスを使用しないテーブル結合の 際に使われる領域 – インデックスを用いないテーブル結合は避 けるべきなので大きくする必要は無い
14.
read_buffer_size –
テーブルスキャンのときに使われる領域 – インデックスを使わないクエリは発行する べきではないので大きくする必要は無い
15.
myisam_sort_buffer_size – MyISAM
で DDL 系のクエリの時にインデッ クスのソートに使われる領域 – 通常のクエリでは使われないのでそれほど 多く取る必要は無い
16.
メモリ以外の設定
17.
innodb_log_file_size –
InnoDBの更新ログを記録するディスク上の ファイル – innodb_log_file がいっぱいになったら、 innodb_buffer_poolの中の更新されたデー タをディスクに書き出し – innodb_buffer_pool_size を大きくしたら innodb_log_file_size も合わせて調整 – 大きくするほどクラッシュリカバリに時間が かかる
18.
table_open_cache – 開いたテーブルのファイルポインタを格納
する – 同時接続数×テーブル数が最低限必要 – 1024〜2048 が一般的 – MyISAM では1テーブルにつき2つ消費 – OS が処理できる記述子数以内にする • cat /proc/sys/fs/file-max
19.
thread_cache_size – スレッドをキャッシュして再接続のオーバー
ヘッドを軽減する – 稼働状況に応じて設定する – コネクションプーリングしてる場合はあまり 影響が無い?
20.
以上を考慮して実際の設定
21.
設定の目安 グローバルバッファ + (スレッドバッファ
× 最大接続数) = 搭載メモリの 8 ~ 9 割 警告: 32-bit GNU/Linux x86 上では、メモリ使用を高く設定しすぎないように注意して ください。glibc はプロセス ヒープがスレッド スタックよりも大きくなる事を許容する可 能性があり、その為サーバがクラッシュしてしまうかもしれません。もし次の式の値が 2GB に近い、またはそれを上回っていたら危険です: innodb_buffer_pool_size + key_buffer_size + max_connections*(sort_buffer_size+read_buffer_size+binlog_cache_size) + max_connections*2MB
22.
設定メモリ量の計算 • 個々の設定を計算するのは面倒臭い –
ツールがあります – mymemcheck – !includedir に対応したものを github に置きました – https://gist.github.com/733390 – mysql -e 'SHOW VARIABLES' | mymemcheck – mymemcheck ~/my.cnf
23.
実行結果抜粋 global_buffers key_buffer_size
16777216 16.000M innodb_buffer_pool_size 268435456 256.000M innodb_log_buffer_size 67108864 64.000M innodb_additional_mem_pool_size 20971520 20.000M net_buffer_length 16384 16.000K --------------------------------------------------- total 356.016M
24.
運用後のチューニング
25.
key_buffer_size の調整 • SHOW
STATUS LIKE 'Key_read%'; – Key_read_requests / Key_reads = 150 以上になる ように key_buffer_size を調整 • SHOW STATUS LIKE 'Key_blocks%'; – Key_blocks_unused が数百など少ない場合 key_buffer_size を増やす必要がある。
26.
最大接続数とスレッド数の確認 • SHOW STATUS
LIKE '%connection%'; – Max_used_connections • これまでに記録された同時接続数の最大値 • SHOW STATUS LIKE 'Threads%'; – Threads_connected • 現在開いている接続の数 – Threads_created • 接続を処理するために生成されたスレッド数 – Threads_running • スリープ状態になっていないスレッド数
27.
table_open_cache の調整 • SHOW
STATUS LIKE 'Open_tables'; – Open_tables • 現在開かれているテーブル数を確認 – Opened_tables • たとえ多くの FLUSH TABLES を実行していない場合でも、 この値が非常に大きい場合や急速に大きくなる場合 は、テーブルキャッシュサイズを拡張する
28.
query_cache_size の調整 • SHOW
STATUS LIKE 'Qcache%'; – Qcache_free_memory • query_cache_size で割り当てたメモリ残量 • これが小さくなって、Qcache_lowmem_prunes が増加してい たら、query_cache_size の増量を検討 – Qcache_inserts / Qcache_hits • Qcache_inserts に対して Qcache_hitsが少ないとキャッシュ のヒット率が悪い – Qcache_free_blocks • 増加している場合 → フラグメンテーション発生 – FLUSH QUERY CACHE でデフラグする必要がある
29.
クエリキャッシュの注意点 クエリキャッシュはケースセンシティブ SELECT … と
select … は別クエリ扱い
30.
まとめ • 最大限のパフォーマンスを発揮できるよ
うに、なるべく多くのメモリを割り当てる • かつ、コネクションが増えた時にメモリを 食い過ぎてスワップが発生しないように、 安全なラインに設定する • 運用しながら SHOW STATUS で値を確認 しながらチューニングする
31.
参考 • 6.5.5. MySQL
でのメモリの使用 – http://dev.mysql.com/doc/refman/5.1/ja/memory-use.html • 9.3. InnoDB スタートアップオプションとシステム変数 – http://dev.mysql.com/doc/refman/5.1-olh/ja/innodb-parameters.html • 4.13.3. クエリ キャッシュの設定 – http://dev.mysql.com/doc/refman/5.1/ja/query-cache-configuration.html • 6.4.8. MySQL でのテーブルのオープンとクローズの方法 – http://dev.mysql.com/doc/refman/5.1/ja/table-cache.html • 13.5.3. InnoDB 設定 – http://dev.mysql.com/doc/refman/5.1/ja/innodb-configuration.html • 5分でできる、MySQLのメモリ関係のチューニング! – http://dsas.blog.klab.org/archives/50860867.html
32.
ご清聴ありがとうございました
Download