线上报表查询
大量数据执行聚合操作,导致CPU爆了
1来尽量避免大批量的数据操作,2来考虑如何限制长时间的查询
针对长时间的查询,可通过maxTimeMS来限制,超出时间服务器主动终止查询,默认0,不限制
参阅:
巧用 maxTimeMS 服务端超时,避免承载亿级用户的腾讯云数据库MongoDB服务雪崩
Mongodb 中文文档 - cursor.maxTimeMS() | Docs4dev
mongodb驱动:
Connect via Your Application — MongoDB Atlas
Cursor Methods — MongoDB Manual
Connection Options — Java Sync
ConnectionString (driver-core 4.7.0 API)
Connection String URI Format — MongoDB Manual
mongodb 2.7.3的sockettimeout配置该怎么写? - H5W3
socketTimeout:默认0不限制,可设置获取数据超时客户端主动断开连接
驱动方面的socketTimeout
是绝对不应该使用的参数,虽然从客户端看是连接断开了,但在服务器端可能因为收不到FIN
而长期保持连接而造成资源泄漏。应该使用的配置是maxTimeMS。