Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
playで複数DBする
Search
takashabe
January 24, 2015
Technology
0
1.6k
playで複数DBする
http://scalive.connpass.com/event/10643/
で話した内容です
takashabe
January 24, 2015
Tweet
Share
More Decks by takashabe
See All by takashabe
より良いターミナルでの生活を求めて
takashabe
0
58
OpenCensusでcustom context propagationとexporterを書いた話 / OpenCensus with custom context propagation and exporter
takashabe
0
1.8k
pubsub with concurrent
takashabe
1
930
社内ISUCONを開催した話
takashabe
0
1.7k
ISUCON大反省会
takashabe
0
1.9k
gitのブランチ戦略
takashabe
8
6k
サルでもわかるgit
takashabe
0
1.5k
MySQLで高トラフィックに立ち向かう
takashabe
0
1.8k
GitHubの良さ
takashabe
2
2.2k
Other Decks in Technology
See All in Technology
Amazon Quick Suite で始める手軽な AI エージェント
shimy
2
1.9k
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
2.3k
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
14k
ペアーズにおけるAIエージェント 基盤とText to SQLツールの紹介
hisamouna
2
1.7k
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.9k
AI との良い付き合い方を僕らは誰も知らない
asei
0
270
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.6k
202512_AIoT.pdf
iotcomjpadmin
0
150
7,000万ユーザーの信頼を守る「TimeTree」のオブザーバビリティ実践 ( Datadog Live Tokyo )
bell033
1
100
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
160
Kiro を用いたペアプロのススメ
taikis
4
1.9k
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
460
Featured
See All Featured
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
170
Reality Check: Gamification 10 Years Later
codingconduct
0
1.9k
The Limits of Empathy - UXLibs8
cassininazir
1
190
WCS-LA-2024
lcolladotor
0
390
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
38
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
520
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Six Lessons from altMBA
skipperchong
29
4.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Amusing Abliteration
ianozsvald
0
71
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
130
Transcript
playで複数DBする Scalive#1.414 Takashi Abe Mynet Inc. 01/25 2015
おまえだれよ @takashabe PHPでソシャゲ作ってます ヘビィボウガン使い HR250 海未ちゃん推し
DBサーバのスケールアウトど うしてますか
playでMySQLをスケールアウ トする
DBサーバのスケールアウト 手法
マスタ分割 DB、テーブルを複数サーバに分割し、クエリに応じて動 的に問合せ先サーバを選択する 分割方式より垂直分割/水平分割がある アプリケーション側での実装が多い
垂直分割
垂直分割 関係性の薄いデータをそれぞれ異なるDBに分散 接続先DBを変えるだけなので大して実装コストはない (例) ユーザデータ系 ログ系 マスタデータ系
垂直分割イメージ
水平分割
水平分割 複数サーバで同じDBを用意し、キーとなるデータによっ て格納先を分割する DB名から一意に格納先のテーブルを特定出来ないの でサーバ振り分けの実装が重くなりがち キーの余剰、ハッシュ値などによって分割を行う
水平分割 分割例 userテーブル、user_idをキーにして分割する user_idを100で割った余剰をテーブル名のサフィック スにする user_00 ~ user_99のテーブルに分割可能 サーバA: user_00
~ user_49 サーバB: user_50 ~ user_99
水平分割イメージ
playで水平分割する
auroraを使う例
auroraとは https://github.com/gree/aurora データソース・シャーディング機能 事前に定義したデータソース群とリゾルバによって、 ヒントに応じたデータソースを解決できます テーブル名・シャーディング機能 事前に定義したリゾルバによって、ヒントに応じたテー ブル名を解決できます。
テーブル名・シャーディング 機能で水平分割する
テーブル構成
データ
クラスタの定義 (conf/database.conf)
DBαʔό܈ͱରԠ͢ΔDB໊(user)Λఆٛ͢Δ クラスタの定義 (conf/database.conf)
テーブル名の定義 (conf/database.conf)
テーブル名の定義 (conf/database.conf) ׂ͢ΔςʔϒϧͷύλʔϯΛఆٛ͢Δ
クラスタの解決 (app/models/DataUser.scala)
クラスタの解決 (app/models/DataUser.scala) ͲͷDBαʔόʹͭͳ͛Δ͔ղܾ͢Δ
テーブル名の解決 (app/models/DataUser.scala)
テーブル名の解決 (app/models/DataUser.scala) ςʔϒϧͷαϑΟοΫεΛղܾ͢Δ
demo
サンプル https://github.com/takashabe/play-aurora
まとめ
水平分割つらいのでやらな いほうが良いと思います