SlideShare ist ein Scribd-Unternehmen logo
1 von 38
N対1 レプリケーション
+ Optimizer Hint
2015/11/20
MySQL Casual Talks vol.8
do_aki
@do_aki
@do_aki
http://do-aki.net/
Master
A
Master
C
Slave
A+B+C
N:1 Replication
Master
B
Master
A
Master
C
Slave
A+B+C
N:1 Replication
Master
B
Master
A
Master
C
Slave
A+B+C
N:1 Replication
Master
B
Master
A
Master
C
Slave
A+B+C
N:1 Replication
Master
B
Master
A
Master
C
Slave
A+B+C
N:1 Replication
Master
B
Master
A
Master
C
Slave
A+B+C
N:1 Replication
Master
B
N1Repl
近況報告
動いてます
無停止稼働1年 通算4年
Multi-source Replication
on MySQL 5.7 GA
https://dev.mysql.com/doc/refman/5.7/en/replication-multi-source.html
Master
A
Master
C
Slave
A+B+C
Multi-source Replication
Master
B
Master
A
Master
C
Slave
A+B+C
Multi-source Replication
Master
B
channel1 channel2
channel3
Master
A
Master
C
Slave
A+B+C
Multi-source Replication
Master
B
channel1 channel2
channel3
GTID 不要!
Use The Multi-source
Replication, Luke.
/******************
*
* “いつもの”
* ここまで
*
*******************/
突然ですが
query
cache
• SET query_cache_type = 0; // OFF
• SET query_cache_type = 1; // ON
• SET query_cache_type = 2; // DEMAND
• SELECT SQL_CACHE * FROM xxx ……
• SELECT SQL_NO_CACHE * FROM xxx ……
ステートメント単位で制御でき
るといえば
Optimizer Hints (>=5.7)
• optimizer_switch => Global/Session
• Optimizer Hints => Statement
• SELECT /*+ HINT(target)*/ * FROM …
• INSERT … SELECT /*+ HINT */ …
• UPDATE /*+ HINT */ …
Optimizer Hints Available BKA/NO_BKA
 BNL/NO_BNL
 MRR/NO_MRR
 NO_ICP
 NO_RANGE_OPTIMIZATION
 蝉SEMIJOIN / NO_SEMIJOIN
 SUBQUERY
 QB_NAME
 MAX_EXECUTION_TIME
SELECT SQL_NO_CACHE /*+ HINT */ * FROM …
SELECT /*+ HINT */ SQL_NO_CACHE * FROM …
SELECT /*+ HINT */ /*!40001 SQL_CACHE */
FROM …
SELECT /*+ HINT *//*!40001 SQL_CACHE */
FROM …
SELECT SQL_NO_CACHE /*+ HINT */ * FROM …
SELECT /*+ HINT */ SQL_NO_CACHE * FROM …
SELECT /*+ HINT */ /*!40001 SQL_CACHE */
FROM …
SELECT /*+ HINT *//*!40001 SQL_CACHE */
FROM …
NG: Hint が SELECT の直後でないので効かない
OK
OK
NG: スラッシュが連続するためパースエラー
query cache からすると別クエリ
SELECT
/*+ MAX_EXECUTION_TIME(1000) */
SQL_CACHE * FROM table;
SELECT
/*+ MAX_EXECUTION_TIME(2000) */
SQL_CACHE * FROM table;
MAX_EXECUTION_TIME
• クエリ実行にタイムアウトを設定
• 5.7.8 より前は MAX_STATEMENT_TIME
mysql> SELECT /*+ MAX_EXECUTION_TIME(1000) */ *
FROM big_table;
ERROR 3024 (HY000): Query execution was
interrupted, maximum statement execution time
exceeded
MySQL5.7 じゃないけど
MAX_EXECUTION_TIME
を使いたい人に
• N:1 Replication 今も動いてるよ
• Optimizer Hint 便利だね
• MySQL5.7 なくても、クエリ単位でタイ
ムアウト設定できるよ
おしまい

Weitere ähnliche Inhalte

Andere mochten auch

php7's ast
php7's astphp7's ast
php7's astdo_aki
 
Writing php extensions in golang
Writing php extensions in golangWriting php extensions in golang
Writing php extensions in golangdo_aki
 
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)do_aki
 
signal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何かsignal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何かdo_aki
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説do_aki
 
20141011 mastering mysqlnd
20141011 mastering mysqlnd20141011 mastering mysqlnd
20141011 mastering mysqlnddo_aki
 
Excel is image viewer
Excel is image viewerExcel is image viewer
Excel is image viewerdo_aki
 
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editorセキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editordo_aki
 

Andere mochten auch (8)

php7's ast
php7's astphp7's ast
php7's ast
 
Writing php extensions in golang
Writing php extensions in golangWriting php extensions in golang
Writing php extensions in golang
 
PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)PHP AST 徹底解説(補遺)
PHP AST 徹底解説(補遺)
 
signal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何かsignal の話 或いは Zend Signals とは何か
signal の話 或いは Zend Signals とは何か
 
PHP AST 徹底解説
PHP AST 徹底解説PHP AST 徹底解説
PHP AST 徹底解説
 
20141011 mastering mysqlnd
20141011 mastering mysqlnd20141011 mastering mysqlnd
20141011 mastering mysqlnd
 
Excel is image viewer
Excel is image viewerExcel is image viewer
Excel is image viewer
 
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editorセキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
セキュアそうでセキュアじゃない少しセキュアな気分になれるmysql_config_editor
 

Mehr von do_aki

Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話do_aki
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とdo_aki
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側do_aki
 
再考:列挙型
再考:列挙型再考:列挙型
再考:列挙型do_aki
 
20150212 プレゼンテーションzen
20150212 プレゼンテーションzen20150212 プレゼンテーションzen
20150212 プレゼンテーションzendo_aki
 
20141017 introduce razor
20141017 introduce razor20141017 introduce razor
20141017 introduce razordo_aki
 
php in ruby
php in rubyphp in ruby
php in rubydo_aki
 
PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!do_aki
 
N:1 Replication meets MHA
N:1 Replication meets MHAN:1 Replication meets MHA
N:1 Replication meets MHAdo_aki
 
Php radomize
Php radomizePhp radomize
Php radomizedo_aki
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...do_aki
 
Immortal
ImmortalImmortal
Immortaldo_aki
 
A bridge between php and ruby
A bridge between php and ruby A bridge between php and ruby
A bridge between php and ruby do_aki
 
Ruby and comparison_and...php
Ruby and comparison_and...phpRuby and comparison_and...php
Ruby and comparison_and...phpdo_aki
 
Sore php
Sore phpSore php
Sore phpdo_aki
 
Php in ruby
Php in rubyPhp in ruby
Php in rubydo_aki
 
Ruby enumerable source code reading
Ruby enumerable source code readingRuby enumerable source code reading
Ruby enumerable source code readingdo_aki
 
Mod lua
Mod luaMod lua
Mod luado_aki
 

Mehr von do_aki (19)

Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話Tritonn から Elasticsearch への移行話
Tritonn から Elasticsearch への移行話
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
 
再考:列挙型
再考:列挙型再考:列挙型
再考:列挙型
 
20150212 プレゼンテーションzen
20150212 プレゼンテーションzen20150212 プレゼンテーションzen
20150212 プレゼンテーションzen
 
20141017 introduce razor
20141017 introduce razor20141017 introduce razor
20141017 introduce razor
 
php in ruby
php in rubyphp in ruby
php in ruby
 
PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!PHP から Groonga を使うにはこんなコードになるよ!
PHP から Groonga を使うにはこんなコードになるよ!
 
N:1 Replication meets MHA
N:1 Replication meets MHAN:1 Replication meets MHA
N:1 Replication meets MHA
 
Php radomize
Php radomizePhp radomize
Php radomize
 
php and sapi and zendengine2 and...
php and sapi and zendengine2 and...php and sapi and zendengine2 and...
php and sapi and zendengine2 and...
 
Immortal
ImmortalImmortal
Immortal
 
A bridge between php and ruby
A bridge between php and ruby A bridge between php and ruby
A bridge between php and ruby
 
Ruby and comparison_and...php
Ruby and comparison_and...phpRuby and comparison_and...php
Ruby and comparison_and...php
 
Sore php
Sore phpSore php
Sore php
 
Php in ruby
Php in rubyPhp in ruby
Php in ruby
 
Ruby enumerable source code reading
Ruby enumerable source code readingRuby enumerable source code reading
Ruby enumerable source code reading
 
Mod lua
Mod luaMod lua
Mod lua
 

Kürzlich hochgeladen

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/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論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 

Kürzlich hochgeladen (10)

知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 

N対1 レプリケーション + Optimizer Hint

Hinweis der Redaktion

  1. 近況といえば MySQL5.7GA 先月リリースされましたが めでたく、Multi-Source Replication も正式に搭載されました
  2. Replication Channnel https://dev.mysql.com/doc/refman/5.7/en/replication-channels.html
  3. Lab 版の時は GTID 必須だったような気がしたのだけど、 GA では GTID 無くても、バイナリログベースでのレプリケーションが可能 (= マスターが古いバージョンでも動く!)
  4. 今のところの結論はこんな感じ。 もし今の N:1 Repl を止めるようなことがあれば 5.7 を検討するつもり。
  5. ちょっとでもテーブルに変更が入るとキャッシュがクリアされるおおざっぱさとか コメントがわずかに異なるだけでキャッシュされなくなる繊細さとか 小規模で書き込みが少ないうちは、これ設定するだけで安全にパフォーマンスを上げられる
  6. セッション/グローバルでの設定 + クエリ単位でキャッシュの制御ができる ただし、細かいことを考え出したらクエリキャッシュから離脱するシグナル