0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mongoを使う前に最低限気にしたい事メモ

Last updated at Posted at 2019-07-01

※ずっとRBMSな世界で過ごしてきた人の個人的なメモです。
 右も左もわからない状態で初めてMongoを触った時、特に予め知っておきたかった事。
 すでに使ってる人から見ればわざわざメモするまでもない内容。

"とりあえず"でMongoを使う前にここだけは考慮したい

ドキュメントの構成

ドキュメントの単位は、業務で利用する単位とする事がおすすめ。
RDBMSのノリで正規化していってしまうとパフォーマンス低下の原因となる。
(業務の主体となる単位がおすすめ。例えば業務で扱うのが"人"の情報なら、1人につき1ドキュメント)

ドキュメントサイズ

通常超える事は無いが、1ドキュメント16Mの制限があるので、軽く意識しておく。
どうしても超えてしまう場合にはリファレンスコレクション(関連テーブル的な)の導入を検討するべき。

シャード構成

取り扱うデータの件数が多い場合にパフォーマンスを求める場合、シャーディングの構成を
どのように(スペック含め)するかは先にキメておかないと痛い目を見る。

シャードキー

特にシャードキーは適当にキメてしまうと全然効率的な分散が出来ない事もあるので
たとえば「人」が単位のドキュメントの場合、単純に連番を振って段階的なシャーディングにしてしまうと
初期のユーザ(番号の若いユーザ)から順番にシステムを利用しなくなってしまった場合に負荷が偏ってしまい
シャーディングの旨さを享受できない。
このような場合、シャードキーをただの連番ではなく、連番のHashed Index等にしておけば解決する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?