15
早くなったのか? 5.5から5.6への アップグレード事例 株式会社ベストリザーブ 貫井 高橋 良明

早くなったのか? MySQL5.5から5.6へのアップグレード事例

Embed Size (px)

DESCRIPTION

MySQL 勉強会 in 大阪(第5回) で発表頂いた、株式会社ベストリザーブ様の事例資料です。 http://atnd.org/events/44157

Citation preview

Page 1: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

早くなったのか? 5.5から5.6への

アップグレード事例 株式会社ベストリザーブ

貫井 剛

高橋 良明

Page 2: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

Web/App

Server

Cycle

Crawler

システム概要

Action

Crawler

Master

DB

Slave

DB

Master

DB

Slave

DB

Master

DB

Slave

DB

Master

DB

Slave

DB

Web/App

Server

Site R

Site J

Site Q

Site Y

Site B

Browser

HTML 取得・解析

データ登録

リクエスト データ登録

レプリ

ケーション データ検索 情報閲覧

Page 3: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

システム規模(クロール編)

サイクルクロール(以下の規模を約20時間でデータ収集)

5サイト

120日分

のべ10万ホテル

のべ150万プラン

500万ページ

100プロセス

アクションクロール

クロール実施 顧客の約1割弱

クロール実施 120プロセス

株式会社ベストリザーブ

Page 4: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

システム規模(DB編)

CPU : Intel Xion 2.8GHz(4Core)

Memory : DDR3 16Gb

Strage : SATA3 RAID1+0

DB File : 40Gb/月 ×40ヶ月

Red Hat Enterprise Linux 6

同じスペックのサーバが8台、Master・Slaveで4セットのDB

サーバを構成

ホテルの所在地などを元にして、どのサーバにデータを保存するのかはアプリケーション側で選定

株式会社ベストリザーブ

Page 5: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

アップグレードの手順

1. MySQLの停止

2. バックアップの作成

3. アップグレードバイナリ環境への移行

4. 設定ファイルの更新

5. MySQLの起動

6. mysql_upgradeの実行

7. MySQLの停止

8. MySQLの起動

株式会社ベストリザーブ

Page 6: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

アップグレードの注意点

当社でのアップグレード時の詰まった点

OS環境 glibc のバージョンが2.5以上が必要

新機能に対するパラメータ レプリケーションのチェックサム機能(binlog_checksum)

既存のパラメータのデフォルト値 テーブル単位にデータファイルを作成(innodb_file_per_table)

廃止されるパラメータ InnoDBの内部データなどを保持するための領域(innodb_additional_mem_pool_size)

株式会社ベストリザーブ

Page 7: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

Before⇔After 1 サーバステータス

Master DB

Status Before(5.5) After(5.6) Difference

Connections 29,989 33,180 3,191

Bytes_received 212,258,673 267,941,567 55,682,894

Bytes_sent 625,357,151 1,091,448,872 466,091,721

Innodb_data_read 437,479,869 1,106,519,440 669,039,571

Innodb_data_written 482,531,551 1,266,796,277 784,264,726

株式会社ベストリザーブ

Slave DB

Status Before(5.5) After(5.6) Difference

Innodb_data_read 410,713,043 382,077,017 -28,636,026

Innodb_data_written 618,098,477 952,248,854 334,150,377

Page 8: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

Before⇔After 2 バッファの使用率とヒット率

Page 9: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

Before⇔After 3 オプティマイザ

株式会社ベストリザーブ

select

daily.01_stock_room,

daily.01_stock_room_status,

daily.01_discount_price,

daily.01_sales_status,

daily.31_stock_room,

daily.31_stock_room_status,

daily.31_discount_price,

daily.31_sales_status,

from

t_plan_base as base

inner join

t_plan_daily_history_201307 as daily

on

base.supplier_hotel_id = daily.supplier_hotel_id

and base.capacity = daily.capacity

and base.room_plan_id = daily.room_plan_id

where

base.supplier_hotel_id = ?

and base.capacity = ?

and base.active_status = 1

and daily.active_status = 1

and daily.check_dtm <= '2013-07-31 09:00:00'

and ifnull( daily.next_check_dtm, '2013-07-31 09:00:00') >= '2013-07-31 09:00:00'

5.6で導入された「Index

Condition Pushdown Optimization(ICP)」が効くようになり同じSQLでも実行時間の短縮されました。

結果は如何に!

Page 10: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

Before⇔After 4 実処理時間

株式会社ベストリザーブ

Proccess Before(5.5) After(5.6) Difference

デイリーレポート

(6万件のバッチ処理) 864秒 740秒

最低価格一覧 6秒 4秒

販売履歴 12秒 8秒

Page 11: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

株式会社ベストリザーブ

Page 12: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

質疑応答

株式会社ベストリザーブ

アップグレードにかかった作業時間は?

早くなる以外のメリットは?

MySQL5.6って本当にイイの?

今後MySQLに期待することは?

ベストリザーブってロンゲとスキンしか居ないの?

Page 13: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

宣伝:ベストリザーブ

ハイランクホテル

プレミアムなホテルを リーズナブルなプライスでご紹介

お天気保険 雨が降ったら宿泊料金全額返金!

ポイントキャンペーン中

もれなく300ポイント贈呈!実質300円引きで泊まれちゃう!泊まった後にも特別ボーナスが!

株式会社ベストリザーブ

http://www.bestrsv.com/

Page 14: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

参考資料など

Release Notes http://dev.mysql.com/doc/relnotes/mysql/5.6/en/index.html

Upgrade手順 http://dev.mysql.com/doc/refman/5.6/en/upgrading-downgrading.html

5.5から5.6へのアップグレードに関する記載 http://dev.mysql.com/doc/refman/5.6/en/upgrading-from-previous-series.html

レプリケーションに関する注意点 http://dev.mysql.com/doc/refman/5.6/en/replication-upgrade.html

サーバステータスの説明 http://dev.mysql.com/doc/refman/5.6/en/server-status-variables.html

株式会社ベストリザーブ

Page 15: 早くなったのか? MySQL5.5から5.6へのアップグレード事例

ご静聴ありがとうございました。