1. MongoDB启动登录
基本启动参数:
mongod --dbpath=db --logpath=log/mongodb.log --logappend --port 27017
其中,`--dbpath`指定数据存储目录,`--logpath`指定日志文件存放路径,`--port`指定端口号。
1.1 MongoDB登录方式
MongoDB支持以下三种登录方式:
1. 无鉴权登录:
开启mongod时不加任何参数,则默认为无鉴权登录,任何人均可连接到mongod。
mongod
2. 基于密码的登录:
通过用户名和密码来验证用户权限。
步骤1:启用用户登录验证。
开启mongod时加入`--auth`参数启用用户登录验证。
mongod --auth --port 27017
步骤2:为用户分配角色。
为用户分配角色,从而决定用户对数据库的操作权限。
use admin
db.createUser(
{
user: "admin",
pwd: "123456",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
步骤3:以指定用户登录。
mongo localhost:27017 -u "admin" -p "123456" --authenticationDatabase "admin"
3. 基于证书的登录:
通过公钥和私钥来验证用户身份,是一种最为安全、最为严格的登录方式。
可以参考官方文档进行操作。
2. MongoDB服务端优化
2.1 慢查询优化
慢查询是指查询速度较慢的查询操作,可能会导致系统响应变慢或阻塞其他操作,因此需要对慢查询进行优化。
MongoDB提供了`explain()`方法,可用于对查询进行分析,返回查询时的详细信息,包括索引使用情况、查询时间等。可以根据返回的结果进行调整和优化。
db.collection.find().explain("executionStats")
其中,`executionStats`为参数,表示返回查询时的执行统计信息。
2.2 存储引擎的选择优化
MongoDB目前提供了两种存储引擎:WiredTiger和MMAPv1。
WiredTiger引擎具有良好的性能和可靠性,目前是MongoDB推荐使用的存储引擎;而MMAPv1引擎对内存要求较高,如果系统内存不足,可能会导致性能下降。
因此,在进行存储引擎的选择优化时,建议选择WiredTiger引擎,并根据数据量和系统配置来适当调整其参数。
2.3 索引优化
索引是MongoDB中提高查询性能的重要手段之一,可以根据具体的查询场景来优化索引。
常见的优化策略包括:
1. 避免使用全表扫描的方式,可以通过建立索引来加快查询速度。
2. 尽量使用前缀索引,避免使用全文索引;
3. 建立多键索引,避免使用复合索引;
4. 设置合适的索引类型,如单键索引、复合索引、全文索引等。
可以通过使用`db.collection.createIndex()`方法来创建索引,并通过`db.collection.dropIndex()`方法来删除索引。
2.4 日志优化
MongoDB生成的日志包括慢查询日志、操作日志等,对于系统性能和调优非常重要。
可以通过`--slowms`参数来设置慢查询阈值,大于该阈值的查询将被记录到慢查询日志中。
mongod --dbpath=db --logpath=log/mongodb.log --logappend --port 27017 --slowms 100
此外,还可以通过`--quiet`参数来关闭日志记录功能。
mongod --dbpath=db --logpath=log/mongodb.log --logappend --port 27017 --quiet
2.5 内存管理优化
MongoDB的内存管理是与存储引擎密切相关的,因此,针对不同的存储引擎,需要采取不同的内存管理策略。
对于WiredTiger引擎,可以通过修改`wiredTigerCacheSizeGB`参数来控制其分配的内存大小。
mongod --dbpath=db --logpath=log/mongodb.log --logappend --port 27017 --wiredTigerCacheSizeGB 1
对于MMAPv1引擎,可以通过修改`storage.mmapv1.smallFiles`参数来控制其使用的内存大小。
mongod --dbpath=db --logpath=log/mongodb.log --logappend --port 27017 --storage.mmapv1.smallFiles
此外,还可以对操作系统进行内存优化,如增加物理内存、关闭不必要的服务等。
2.6 性能监控优化
性能监控是MongoDB优化的重要环节之一,可以通过查看MongoDB生成的监控日志来了解系统的性能瓶颈。
为了方便监控和管理,推荐使用MongoDB自带的监控工具MongoDB Cloud Manager或MongoDB Ops Manager。
同时,还可以借助其他第三方工具来进行监控和分析,如Munin、nmon、iostat等。
总结
MongoDB启动登录和服务端优化涉及到多个方面,需要根据具体的需求和场景来进行优化。总的来说,针对不同的问题和瓶颈,可以从索引优化、存储引擎优化、慢查询优化、内存管理优化、日志优化和性能监控优化等方面进行优化和调整。通过适当的配置和调优,可以提高MongoDB的性能和稳定性,满足不同的业务需求。