sql >> データベース >  >> NoSQL >> MongoDB

MongoDBの_idタイプを整数に変更するのは悪いことですか?

    いいえ、まったく悪くはありません。実際、組み込みのObjectId はインデックス内でかなり大きいので、何か良いものがあると思われる場合は、_idのデフォルト値を変更することを歓迎します。 何にでもフィールド。

    しかし、これは大きなしかし 、デフォルトの定式化されたObjectIdから離れることを決定する際には、いくつかの考慮事項があります。 特に、ここに示すように自動インクリメント_idsを使用する場合:https://docs.mongodb.com/v3.0/tutorial/create-an-auto-incrementing-field

    findAndModifyなので、マルチスレッドはそれほど大きな問題ではありません。 アトミックロックは実際にそれを処理できますが、最初の問題にぶつかるだけです。 findAndModify は最速の機能でも最軽量の機能でもありません。定期的に使用すると、パフォーマンスが大幅に低下します。

    findAndModifyがなくても、とにかくこれを自分で行うオーバーヘッドを考慮する必要があります。 。挿入ごとに、追加のクエリが必要になります。挿入するたびに一意性を照会する必要がある一意のIDがあると想像してください。最終的に、挿入率はクロールに低下し、ロック時間が増加します。

    もちろん、ObjectId 挿入前にデータベースにアクセスして独自の一意性を確認または定式化する必要がなく、一意であることが非常に優れているため、このオーバーヘッドはありません。

    それでもinteger_idがシナリオに適していると思われる場合は、それを選択してください。ただし、上記のオーバーヘッドを念頭に置いてください。



    1. オープンソースデータベースを管理するための新しい方法

    2. Hibernateの第2レベルのキャッシュとしてRedis

    3. ANDとORの両方でmongodbクエリ

    4. / sidekiqルートをパスワードで保護するにはどうすればよいですか(つまり、Sidekiq ::Webツールの認証が必要です)?