2016-03-23 13 views
0

Ich habe versucht, wie lange zu messen es für diese einfache Abfrage auszuführen hat:Mongodb Spring Data: Langsame Abfrage auf indizierten Feld?

companyRepository.findOne(companyId); // took 300ms 

Hier ist die Repository-Klasse-I verwenden:

package fn.repository; 
import org.springframework.data.mongodb.repository.MongoRepository; 
import org.springframework.data.querydsl.QueryDslPredicateExecutor; 
import org.springframework.data.rest.core.annotation.RepositoryRestResource; 

import fn.model.Company; 

@RepositoryRestResource(exported = false) 
public interface CompanyRepository extends MongoRepository<Company, String>, QueryDslPredicateExecutor<Company> { 
} 

Ist es normal, dies für eine indizierte lange dauern Sieh nach oben?

Antwort

0

Es ist normal. Das Einfügen/Aktualisieren in Datenbanken, die Indizes enthalten, sollte mehr Zeit in Anspruch nehmen, als einfach in die Heapstruktur schreiben, da die Datenbank die Reihenfolge beibehalten und die Struktur ausgleichen muss (MongoDB verwendet die B-Tree-Datenstruktur für die Indeximplementierung wie jedes andere Datenbanksystem). folgen: https://docs.mongodb.org/manual/core/indexes-introduction/#single-field

Der beste Weg, Betriebszeit zu reduzieren, ist Indizes auf einzelnes Feld eines Dokuments zu erstellen, die Sie wahrscheinlich auf viele nicht benötigten Feldern als Indizierung sortieren/search auf eher wollen.