MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wpływ na wydajność indeksu typu danych w MongoDB?

Wymóg przechowywania wartości całkowitych jest mniejszy, ale oczywiście nie jest bardzo istotny. Algorytm sortowania/indeksowania liczby byłby nieco szybciej niż struna normalnie, ale różnica byłaby bardzo mała, ponieważ struna jest również bardzo krótka.

Nie spodziewałbym się przekonującej różnicy wydajności między tymi dwoma. Jeśli planujesz przechowywać adresy IPV6, problemem będzie to, że BSON (http://bsonspec.org/ #/specyfikacja ) nie ma prostego typu danych do przechowywania 16-bajtowej liczby, więc nie zawsze jest to naturalne, aby przechowywać tylko liczbę.

Na koniec prawdopodobnie użyłbym stringów, jeśli chcesz uniknąć tłumaczenia z pamięci na ekran lub jeśli chcesz, aby zapytania były bardziej naturalne do pisania dla większości z nas :) :

db.ips.find({addr: "192.168.1.1"})

Jeśli używasz ciągów, sugeruję również, abyś rozważył przechowywanie jako ciąg o stałym formacie, taki jak 192.168.001.001 jeśli chcesz przeprowadzić bardziej złożone wyszukiwania, takie jak wyszukiwanie zakresu. Ponieważ ciąg przechowywany w spójnym, stałym formacie będzie sortowany w sposób naturalny, możesz go używać na więcej sposobów, niż byłoby to możliwe w innym przypadku. Jeśli zakresy nie są ważne, nie jest konieczne przechowywanie w ten sposób.

Przy stałym formacie możesz wykonać zapytanie takie jak:

db.ips.find({ addr: {
                 $gte: "192.168.000.000",
                 $lte: "192.168.000.255" } })

Spowoduje to znalezienie wszystkich adresów IP pomiędzy (włącznie) 192.168.0.0 i 192.168.0.255 .

Najlepiej byłoby mieć indeks na polu w obie strony:

db.ips.ensureIndex({ addr: 1 })



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. nie można znaleźć fasoli dla MongoRepository (wiosna rozruchu)

  2. Jak działa sortowanie w nowym rozszerzeniu mongodb PECL?

  3. Czy django z mongodb sprawia, że ​​migracje to już przeszłość?

  4. Automatycznie przedawniaj dokumenty kolekcji MongoDB

  5. Jak dokonać wyboru pola na find() w natywnym sterowniku mongodb?