`
luozhaoyu
  • 浏览: 347169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mongo删除大表之后的操作

阅读更多
一直很好奇mongo执行db.collection.drop之后需不需要优化。
所以先查了官方文档:
drop
引用

http://docs.mongodb.org/manual/reference/command/drop/

The drop command removes an entire collection from a database.
Note that this command also removes any indexes associated with the dropped collection.

drop会连索引一块删除

compact
引用

http://docs.mongodb.org/manual/reference/command/compact/

Rewrites and defragments all data in a collection, as well as all of the indexes on that collection.

compact may increase the total size and number of your data files, especially when run for the first time. However, this will not increase the total collection storage space since storage size is the amount of data allocated within the database files, and not the size/number of the files on the file system.

compact requires up to 2 gigabytes of additional disk space while running. Unlike repairDatabase, compact does not free space on the file system.

compact commands do not replicate to secondaries in a replica set:

Compact each member separately.
Ideally run compact on a secondary. See option force:true above for information regarding compacting the primary.

可见compact是一个collection的磁盘碎片整理,且会block整个数据库
compact会增加mongo的磁盘占用(且需要2G临时空间),而repairDatabase可以free space
compact操作不会传播到secondaries上,需要一个一个操作

repairDatabase
引用

The repairDatabase command checks and repairs errors and inconsistencies with the data storage. The command is analogous to a fsck command for file systems.

Note When using journaling, there is almost never any need to run repairDatabase. In the event of an unclean shutdown, the server will be able restore the data files to a pristine state automatically.

As a side effect, the repairDatabase command will compact the database, as the compact command, and also reduces the total size of the data files on disk. The repairDatabase command will also recreate all indexes in the database.

repairDatabase用来检查和修复错误及数据不一致,与fsck相似
打开journal日志之后几乎没有必要再repariDatabase.
repairDatabase副作用是会compact,重建索引和减少磁盘占用


小结:
所以从文档来看,没有直接必要在删大表之后重新repairDatabase。暂时没找到证据说明repairDatabase之后可以提高性能,只是能够把磁盘空间回收而已

分享到:
评论

相关推荐

    MongoVUe客户端可视化工具

    MongoVUE是一款针对MongoDB数据库的强大且用户友好的可视化客户端工具,它提供了直观的界面,使得数据库管理和数据操作变得更为简单。MongoDB是一款流行的开源、文档型数据库系统,以其灵活性、可扩展性和高性能而受...

    php_mongo.dll

    这个类提供了一系列方法,如连接到数据库、选择集合(等同于传统数据库的表)、插入文档、查询数据、更新记录和删除文档等。例如,你可以使用 `new MongoClient()` 创建一个新的MongoDB连接,然后通过 `selectDB('...

    Python库 | sanic_mongo-1.7.1-py3-none-any.whl

    4. **CRUD操作**:Sanic_Mongo提供了创建、读取、更新和删除(Create, Read, Update, Delete)数据的简便方法,使开发者能够快速实现常见的数据库操作。 5. **查询支持**:库内包含丰富的查询API,支持复杂的查询...

    开源项目-mongodb-mongo-go-driver.zip

    1. CRUD操作:支持创建、读取、更新和删除(CRUD)数据库文档,包括单个文档和批量操作。 2. 异步和同步API:为满足不同场景的需求,驱动器提供了同步和异步两种API,异步API基于Go的通道和goroutine,允许开发者...

    mongo-tx:适用于nodejs的灵活,可扩展的mongodb事务库

    创建事务并运行它时,需要在事务期间使用模型包装器修改数据,每个模型包装器将在查找/查找一个/创建/修改/删除文档之前创建锁和快照,在此事务中这些文档的所有操作之后成功后,事务管理器将删除所有快照并释放所有...

    Matlab连接MongoDB操作指引

    在掌握了基本的连接方法之后,还可以进行更复杂的操作,例如查询数据、插入数据等。这些操作的具体语法和用例可以参考Matlab官方文档: - 官方文档链接:[https://ww2.mathworks.cn/help/database/ug/mongo.html]...

    PyCharm配置mongo插件的方法

    此外,还可以执行如创建、删除数据库和集合等常见操作。 #### 总结 通过上述详细的步骤介绍,我们可以清晰地了解到如何在PyCharm中配置并使用MongoDB插件。这不仅能够提高开发效率,还能简化数据库管理流程,使得...

    ig-mongo-provider:提供访问mongodb实例的应用程序

    ig-mongo-provider是专为JavaScript设计的一款库,它允许开发者便捷地连接和操作MongoDB实例,极大地简化了与数据库交互的过程。 ig-mongo-provider的核心功能在于为应用程序提供了一个简洁的接口,用于连接...

    JAVA操作MongoDB

    可以通过它执行CRUD(创建、读取、更新、删除)操作。 - **创建(C)数据**:通过`insert`方法可以向集合中插入文档。如果集合不存在,MongoDB会自动创建。 - **读取(R)数据**:通过`find`方法可以查询集合中的...

    Mongodb数据库误删后的恢复方法(两种)

    然而,这种方法依赖于 oplog 中保留的操作数量,如果删除发生在很久之前,oplog 可能已经滚动,无法完全恢复。 2. **通过备份集恢复** 如果你定期执行备份,无论是全量备份还是增量备份,这将是你恢复数据的可靠...

    MongoDB(一)的安装与启动 yum安装 linux(版本 CentOS 7.0).pdf

    - 删除数据:`sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongo` 7. **远程连接MongoDB** 要远程连接MongoDB,需修改配置文件`/etc/mongod.conf`,将`bindIp`或`bindIpAll`设置为允许访问的IP地址或所有...

    mongodb在linux环境下命令行操作介绍文档

    ### MongoDB在Linux环境下的命令行操作详解 #### 一、登录与退出MongoDB 在Linux环境中,通过命令行操作MongoDB是一种非常常见的方法。要连接到远程MongoDB服务器,可以直接使用`mongo`命令加上服务器的IP地址。...

    php实现的mongoDB单例模式操作类

    在实际操作中,你可以根据需求扩展这个类,添加更多的方法来执行CRUD(创建、读取、更新、删除)等操作。例如,你可以添加`insertOne()`, `find()`, `updateOne()`, `deleteOne()`等方法,以简化数据库操作。 对于...

    PHP与MongoDB简介|安全|M+PHP应用实例详解|angluo-php-96734.pdf

    在建立连接之后,接下来就可以指定数据库和数据集(表)进行操作。可以通过`$conn->blog`选择数据库blog,然后通过`$db->users`指定数据集名(表名)users。 在MongoDB中进行CRUD(创建Create、读取Read、更新***e...

    MongoDB服务端JavaScript脚本使用方法

    通过db.system.js.remove({"_id":"<function_id>"})和db.system.js.save()方法,你可以删除旧的函数脚本,并保存新的JavaScript函数到服务端。之后,可以调用db.loadServerScripts()来加载所有存储在db.system.js中...

    node-mongo-registration-login-api

    标题 "node-mongo-registration-login-api" 提供了一个关于使用 Node.js 和 MongoDB 开发用户注册与登录功能的 API 的线索。这个API着重于用户管理和身份验证的核心功能,是构建Web应用程序时常见的需求。Node.js 是...

    Windows下Mongodb自动同步Elasticsearch教程

    安装好Elasticsearch和Python之后,接下来需要安装两个Python包:mongo-connector和对应Elasticsearch版本的文档管理器。文档管理器是mongo-connector的一部分,它能够将MongoDB中的数据变更事件转换为Elasticsearch...

Global site tag (gtag.js) - Google Analytics