db tech showcase 2013 TokyoのMySQLセッション

4
前へ 1 ・・ 6 7 ・・ 16 次へ
yoku0825 @yoku0825

「書き込み単位を4KBに変えることで性能改善。InnoDBログが大きすぎるとメモリーを食うので、InnoDBログのキャッシュ追い出しツールがある」 #dbts2013 #mysql_jp

2013-11-14 11:24:01
yoku0825 @yoku0825

「ダブルライトバッファはスペースID、ページIDだけを書くようにしてある。これだと16KBでなく8バイトで済む。クラッシュリカバリーの時にそのページを特定してチェック」 #dbts2013 #mysql_jp

2013-11-14 11:25:14
yoku0825 @yoku0825

「修復機能は捨てて、検知機能に特化させてる。検知されたら、DB全体を再構築しちゃう。最近のH/Wは優秀なので、ページは壊れてないことがほとんど」 #dbts2013 #mysql_jp

2013-11-14 11:25:51
ITOH Hiroyuki @i_rethi

Doublewrite Bufferへの書き込み削減。書き込み量が2倍(以上)になる。圧縮していても1ページに16KBを書き込み。SSDに優しくない、FB版は壊れたページを「検知」する事に特化 #dbts2013 #mysql_jp

2013-11-14 11:26:29
yoku0825 @yoku0825

「ダブルライトをスキップしちゃうと壊れてるかどうかすら判らない、運用中に壊れてるページを踏むのは困るので、トレードオフを意識してこんな感じに」 #dbts2013 #mysql_jp

2013-11-14 11:26:33
yoku0825 @yoku0825

「super_read_only、マスターのフェイルオーバーなどでSUPER権限ですら書き込ませたくないとき」 #dbts2013 #mysql_jp

2013-11-14 11:26:58
Neofact @NeofactJ

DoubleWriteBufferへの書き込み量削減、書かない代わりに検知する仕組みとしてスペースIDのみ書き込む仕組み。#dbts2013 #MySQL_jp

2013-11-14 11:27:24
yoku0825 @yoku0825

「システム変数の変更時にログに出す、flash cache用のフラグ、Start trans~」 Start trans~はMariaDB 5.3のアレかな? #dbts2013 #mysql_jp

2013-11-14 11:27:57
ITOH Hiroyuki @i_rethi

その他の追加機能。super_read_only(フェールオーバーしても絶対に更新したくないマスターなんかに設定してるぽい)、一部のシステム変数を変更したときにログに出す、SQL_NO_FCACHEフラグの追加など #dbts2013 #mysql_jp

2013-11-14 11:28:32
yoku0825 @yoku0825

「初期段階では主要な機能は使わずにアップグレード」 ここにもMeta Data LockをMDLと略す人が #dbts2013 #mysql_jp

2013-11-14 11:28:51
yoku0825 @yoku0825

「段階的な移行。軽いサービスから順番に。スレーブをサービスから外してアップグレードして、サービスに戻す。全部のスレーブをアップグレードしたらどれかをマスターに昇格」 普通だw #dbts2013 #mysql_jp

2013-11-14 11:30:22
ITOH Hiroyuki @i_rethi

5.6へのアップグレードまで自動化してる #dbts2013 #mysql_jp

2013-11-14 11:30:30
yoku0825 @yoku0825

「SET OPTION構文がエラーになるようになった。古いJDBC Driverは内部的にSET OPTIONを叩いているので動作しなくなる」 #dbts2013 #mysql_jp

2013-11-14 11:31:00
ITOH Hiroyuki @i_rethi

SET OPTIONでエラーに。DROP/ALTER TABLEが遅くなった。5.5で高速なdrop/alter table実装されたが5.6で入ってなかった。現在は直っている #dbts2013 #mysql_jp

2013-11-14 11:31:36
yoku0825 @yoku0825

「InnoDBの統計情報永続化、起動時に統計情報を埋めるのに時間がかかる。アップグレード時に5~20分固まった。時々この更新処理がストールを起こす」 #dbts2013 #mysql_jp

2013-11-14 11:32:48
yoku0825 @yoku0825

これか。 MySQL Bugs: #70768: Persistent optimizer statistics often causes LOCK_open stalls http://t.co/VJauLaxwhA #dbts2013 #mysql_jp

2013-11-14 11:33:36
yoku0825 @yoku0825

「今のバージョンには入ってないけど、もう1つ2つ後のバージョンには本家にも入るんじゃないかな」 #dbts2013 #mysql_jp

2013-11-14 11:34:28
ITOH Hiroyuki @i_rethi

いくつかのクエリでオプティマイザが誤動作。5.6でオプティマイザの動作が大きく変更。いくつかのクエリで非効率なプランを選択するケースが出た #dbts2013 #mysql_jp

2013-11-14 11:34:51
yoku0825 @yoku0825

「オプティマイザーの動作が変わるタイミングは要注意」 #dbts2013 #mysql_jp

2013-11-14 11:35:03
ITOH Hiroyuki @i_rethi

eq-range_index_dive_limitシステム変数。INなどのイコール条件が多数ある場合、統計情報を読みに行かなくなった(default 10)。IN (1..11) => 予想スキャン件数は11/レコード総数 #dbts2013 #mysql_jp

2013-11-14 11:35:50
yoku0825 @yoku0825

「eq_range_index_dive_limitのデフォルトが10と小さいので11個並べちゃうとかなりトチ狂う」 #dbts2013 #mysql_jp

2013-11-14 11:35:53
ITOH Hiroyuki @i_rethi

つかこれは酷いw eq_range_index_dive_limit #dbts2013 #mysql_jp

2013-11-14 11:36:31
yoku0825 @yoku0825

「レンジパーティションの実行計画も変わった。時系列のパーティションで、未来用のパーティションを作っているケースだと踏むかも」 #dbts2013 #mysql_jp

2013-11-14 11:36:51
ITOH Hiroyuki @i_rethi

レンジパーティションの実行計画の変化。マッチしないパーティションがたくさんある場合、予想スキャン件数を過剰に低く見積もってしまう不具合(bug id=70265)。時系列パーティションで影響を受ける事がある #dbts2013 #mysql_jp

2013-11-14 11:37:36
yoku0825 @yoku0825

MySQL Bugs: #70265: Optimizer under-estimates rows when there are many unmatched partitions http://t.co/CWdyKYfmVt #dbts2013 #mysql_jp

2013-11-14 11:37:51
前へ 1 ・・ 6 7 ・・ 16 次へ