Монго дб 1.4.1Почему индекс на Number больше, чем на String?
2 коллекции, идентичные данные, но и использовать другой тип данных (Foo - строка, бар - номер) для поля "х":
> db.foo.ensureIndex({x:1});
> db.bar.ensureIndex({x:1});
> db.foo.stats();
{
"ns" : "impressions.foo",
"count" : 50000,
"size" : 23519184,
"avgObjSize" : 470.38368,
"storageSize" : 37797888,
"numExtents" : 8,
"nindexes" : 2,
"lastExtentSize" : 15290368,
"paddingFactor" : 1,
"systemFlags" : 0,
"userFlags" : 0,
"totalIndexSize" : 2526384,
"indexSizes" : {
"_id_" : 1463504,
"x_1" : 1062880
},
"ok" : 1
}
> db.bar.stats()
{
"ns" : "impressions.bar",
"count" : 50000,
"size" : 21594256,
"avgObjSize" : 431.88512,
"storageSize" : 22507520,
"numExtents" : 7,
"nindexes" : 2,
"lastExtentSize" : 11325440,
"paddingFactor" : 1,
"systemFlags" : 0,
"userFlags" : 0,
"totalIndexSize" : 2730784,
"indexSizes" : {
"_id_" : 1463504,
"x_1" : 1267280
},
"ok" : 1
}
x_1 больше в случае 2 , тогда как вы ожидали бы противоположного?
Зачем вам ожидать противоположного? –
Я должен признать, что это путаница, я имею в виду, что средний размер объекта меньше, ведь вся статистика меньше для numbner, кроме размера, на самом деле размер не очень хорошо связан с остальными данными в выводе статистики , @DekDekku, вероятно, потому, что для представления чисел требуется меньше байтов, чем строк. – Sammaye
Может быть меньше байтов для представления строки, если строка маленькая (и это меня не удивит, если все строки в коллекции «foo» и «bar»), в то время как числа всегда занимают одинаковое пространство. Но я не могу проверить фактические данные, поэтому ... –