Submit Search
Upload
ファントムファイル
•
0 likes
•
3,235 views
Akura Pi
Follow
Report
Share
Report
Share
1 of 15
Download now
Download to read offline
Recommended
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
Ikki Ohmukai
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
Tomoaki Uchida
2013年11月5日(火) アジャイルサムライ 横浜道場で使用した資料です。
KPTの基本と、その活用法
KPTの基本と、その活用法
ESM SEC
Githubを使ったことのない人向けの説明スライド
Githubサービスについて
Githubサービスについて
Akura Pi
viewとmodel
Slide
Slide
Akura Pi
SQLアンチパターン「フィア・オブ・ジ・アンノウン」
フィア・オブ・ジ・アンノウン
フィア・オブ・ジ・アンノウン
Akura Pi
ナイーブツリーの入れ子集合
ナイーブツリーの入れ子集合
Akura Pi
そもそもFloatとは
そもそもFloatとは
Akura Pi
Recommended
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
オープンデータと「つながる社会」@オープンデータ京都勉強会(2013.04.20)
Ikki Ohmukai
SQLアンチパターン(インデックスショットガン)
SQLアンチパターン(インデックスショットガン)
Tomoaki Uchida
2013年11月5日(火) アジャイルサムライ 横浜道場で使用した資料です。
KPTの基本と、その活用法
KPTの基本と、その活用法
ESM SEC
Githubを使ったことのない人向けの説明スライド
Githubサービスについて
Githubサービスについて
Akura Pi
viewとmodel
Slide
Slide
Akura Pi
SQLアンチパターン「フィア・オブ・ジ・アンノウン」
フィア・オブ・ジ・アンノウン
フィア・オブ・ジ・アンノウン
Akura Pi
ナイーブツリーの入れ子集合
ナイーブツリーの入れ子集合
Akura Pi
そもそもFloatとは
そもそもFloatとは
Akura Pi
TableViewAgent
TableViewAgent
Akura Pi
Metaprogramming
Metaprogramming
Akura Pi
Ns user defaults
Ns user defaults
Akura Pi
Currying
Currying
Akura Pi
Storyboard
Storyboard
Akura Pi
Mvcのすすめ
Mvcのすすめ
Akura Pi
Groovy base
Groovy base
Akura Pi
More Related Content
More from Akura Pi
TableViewAgent
TableViewAgent
Akura Pi
Metaprogramming
Metaprogramming
Akura Pi
Ns user defaults
Ns user defaults
Akura Pi
Currying
Currying
Akura Pi
Storyboard
Storyboard
Akura Pi
Mvcのすすめ
Mvcのすすめ
Akura Pi
Groovy base
Groovy base
Akura Pi
More from Akura Pi
(7)
TableViewAgent
TableViewAgent
Metaprogramming
Metaprogramming
Ns user defaults
Ns user defaults
Currying
Currying
Storyboard
Storyboard
Mvcのすすめ
Mvcのすすめ
Groovy base
Groovy base
ファントムファイル
1.
ファントムファイル akuraru
2.
概要 • 目的:大容量ファイルの保存 • AP:物理ファイルが必須と思い込む •
禁止ではない • 解決:DBに格納することを検討する
3.
目的 • 大容量メディアを格納する • アプリケーションはエンティティと関 連したメディアを取得することは必須
4.
AP:物理ファイルだが必須だと思い込む • DBにはファイルパスを保存する LOB(実体) LOB(実体) ファイルパスを保存 DB ファイルシステム
5.
問題 • DBとファイルシステムの連携がうまく できない。 ! • DBはすべてのデータがDB内に保存され る前提で設計されている •
DBの外との関連は人ががんばる
6.
ファイルの削除 • 参照を削除するだけなので実体は削除されない 削除しても消えない LOB(実体) LOB(実体) DB ファイルシステム
7.
トランザクション分離 • 先にファイルを消すとその時点でアクセスできなくなる(ファイルが欠ける) • 別のユーザーがアクセスしたら矛盾したことになる LOB(実体) ファイルパスを保存 DB ファイルシステム
8.
ロールバック • ロールバックしてもファイルは削除さ れたまま • ファイルも元に戻す必要がある
9.
バックアップツールの使用 • バックアップが同時に行われないと中 途半端な変更や矛盾が発生する • 復元も同じ組み合わせを使わなくては ならない
10.
アクセス権限 • ファイルの権限とDBの権限が異なる 型がない • 型による整合性が保証できない
11.
アンチパターンの利点 • DBの容量の低減 • バックアップの高速化 •
ファイルを一括で編集できる
12.
解決:BLOBも検討する • ファイルパスのデメリットがない • 矛盾が生じない •
DB内で完結している • バックアップが単純 • アクセス権限に矛盾がない
13.
まとめ • 状況に応じて使い分ける
14.
BLOB • バイナリー・ラージ・オブジェクト MySQL 名前 サイズ(B) Oracle Postgre SQL LONGBLOB 2^32 BLOB 128T(2^37) BLOB 2^32
15.
LOBロケータ • Oraclaにはある • DB内でファイルパスをしているっぽい •
説明できる人がいたらお願いします
Download now