MySQL Casual Talks Vol.1

URL:http://mysql-casual.org/

http://atnd.org/events/9803

日付:2010/12/11

場所:日本オラクル青山センター

1.show innodb status

innodb の状態を見るSQLコマンド

purge と histoy

トランザクション開いたままコミットしていないものが見れられる

read/sは0に近づけるのが吉


2.xtrabackupとかtcpdumpとか(仮)

tcpdump

mysqlのtcpdumpの使い方は mysql performanceブログに載っている

mk-query-digest(maakit)でtcpdumpを読みこめる

mk-query-digestは
query review
query review history
でDBに統計結果を保存できる

アプリ化しました->MyQueryShow
tcpdump -> mk-query-digest (DBにin)
で解析できる

xtrabackup

innobackupのようなオープンソフトウェア
オンラインバックアップができる


3.VP & SPIDER イントロダクション(Not Only Sharding)

発表資料:
http://kamipo.github.com/talks/20101211-mysql-casual1/
(nキーで進む、pキーでもどる)

MySQLのストレージエンジン

VPはカラムごとにてテーブルを垂直分轄できる

両者ともSharedingだけじゃない使い方がある

VP SPIDERを組み合わせることでホスト間テーブル移動ができる
ー>mysqldumpとの違いはオンラインでできること
でもPKEYがないとvp_copy_taglesが使えない

やるにあたっては、できるだけ最新のmysqlを使用する、xaトランザクションサポートをoffに


4.MySQL 初めてのチューニング

グローバルバッファ
スレッドバッファ
をそれぞれチューニング

table_open_cache
同時接続数×テーブル数が必要(102402048くらい)

グローバルバッファ+(スレッドバッファ×最大接続数)が搭載メモリの8,9割になるように調整
32bit環境下では高く設定しすぎないように

設定メモリ量の計算ツールmymemcheckがあるのでそれで確認

key buffer sizeの調整
key read request / key reads = 150以上
show status like ‘%connection%’のmax used connectionsで稼働してからの同接の最大値がわかる

クエリキャッシュはSQLの大文字小文字を区別して保存する
ー>同一クエリは統一させてヒット率を上げる


5.はてなでのMySQL運用(仮)

日頃のmysql運用について

純正mysql + innodb plugin使用

/etc/my.cnfの管理
chefd自動設定
server-id、buffer pool sizeなど

DBのコピー
tarで固めてncで送信
転送はscpよりも早い

バックアップ
mysqldumpで保存

状態監視
rrdtool
innotop

クエリ解析
mk-query-digest

MySQL on SSD

スレーブで使用。ほぼこわれない


6.たのしいMySQLデータ分割入門(仮)

sharding

複数DBにデータを分割する
=>物理サーバレベルで分散するので処理速度が向上する
デメリット
・JOINできない
・シーケンスを別管理

Partitioning

テーブル自体を分割管理
UNIQや外部制約が使えない


7.online schema change(仮)

オンラインでテーブル構成を変更する

一般的なオンラインでのテーブル変更法
・普通にALTERをする → ALTER中はテーブルロックがかかる
・データコピーして変更して、リネーム → コピー後からリネームするまでのデータが反映できない

テーブルロック、不整合なく構成を変更したい

Facebookで使われているツールPHP製をもとにPerlモジュール化してみました

必要条件
PKEYがある
FKEY未使用
トリガー設定未使用
InnoDB使用
後方互換があるALTERのみ

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中