Макрос __FILE__ показывает полный путь

В случае удаления большого фрагмента данных из коллекции, и коллекция никогда не использует удаленное пространство для новых документов, это пространство должно быть возвращено в операционную систему, чтобы оно могло использоваться другими базами данных или коллекциями.

Поведение процесса уплотнения зависит от механизма MongoDB следующим образом

db.runCommand({compact: collection-name })

MMAPv1

Операции дефрагментации операций уплотнения данных и amp; индексов. Однако он не освобождает место для операционной системы. Операция по-прежнему полезна для дефрагментации и создания более непрерывного пространства для повторного использования MongoDB. Тем не менее, это бесполезно, когда свободное место на диске очень мало.

Во время операции уплотнения требуется дополнительное пространство на диске до 2 ГБ.

Блокировка уровня базы данных

WiredTiger

Механизм WiredTiger обеспечивает сжатие по умолчанию, которое потребляет меньше места на диске, чем MMAPv1.

Компактный процесс освобождает свободное пространство к операционной системе. Для выполнения компактной операции требуется минимальное дисковое пространство. WiredTiger также блокирует все операции с базой данных, так как он нуждается в блокировке уровня базы данных.

Для механизма MMAPv1 компактность не возвращает пространство в операционную систему. Для освобождения неиспользуемого пространства вам потребуется выполнить операцию восстановления.

db.runCommand({repairDatabase: 1})

Здесь вы можете найти подробную информацию о компактной работе здесь

142
задан Ajay 16 July 2014 в 16:36
поделиться

1 ответ

Короткий, рабочий ответ и для Windows и для *отклоняет:

#define __FILENAME__ std::max<const char*>(__FILE__,\
    std::max(strrchr(__FILE__, '\\')+1, strrchr(__FILE__, '/')+1))
0
ответ дан 23 November 2019 в 22:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: