0

MongoDB のデータ削除が非常に遅いことがわかりましたが、クエリまたは挿入アクションは問題ありません。

これは私のシャードの状態です:

shards:
{  "_id" : "shard0000",  "host" : "192.168.1.50:27017",  "tags" : [ "global" ] }
{  "_id" : "shard0001",  "host" : "192.168.2.50:27017",  "tags" : [ "china" ] }

2 つのデータベースは異なる国に設定されています。しかし、テストではすべてのデータを同じデータベースに配置したと確信しています。

これはレコード構造です:

{
"_id": ObjectId("56cd5cdae4b0323bc94339e6"),
"eventId": NumberLong(5680),
"opuId": NumberLong(2576),
"eventTime": ISODate("2016-02-24T07:33:46.471Z")},
{
"_id": ObjectId("56cd5cdae4b0323bc94339e7"),
"eventId": NumberLong(5681),
"opuId": NumberLong(2576),
"eventTime": ISODate("2016-02-24T07:34:46.471Z")}

私は春のフレームワークを使用しており、これが私のコードです:

クエリ:

@Query(value = "{'eventId' : ?1}")
public Event findByEventId(long eventId);

消去:

mongoTemplate.remove(query(where("eventId").is(event.getEventId())), Event.class);

通常、100 レコードの保存またはクエリには 100 ミリ秒かかります。ただし、100 件のレコードを個別に削除するには 30 秒以上かかります。

しかし、バッチ削除を使用すると、50 ミリ秒未満で済みます。見た目は普通です。

mongoTemplate.remove(query(where("opuId").is(opuId)), Event.class);
4

1 に答える 1