1. 用关联?还是内嵌文档?来存储记录 ------->看存储的数据是否经常修改
2. single query即确保想要的数据在一次查询中能够获取到
3. 如果collection的document是无边界的,尽量不使用内嵌文档
4. 对于复杂的collection(通常用于定期的存入数据),可以事先在资源空闲的时候先创建,
并填入一些默认值,等要存储实际数据时,更新collection即可。【就是预留空间】
5. self-sufficient: fast and slow【重点考虑数据一致性的要求有多高】
6. 慎用$where,不得不用的时候,应该是其作用的文档集合尽可能的小
7. 重写"_id",注意其值的随机度,另外尽量避免用document作为"_id"的类型
8. DBref何时该用?无法确定引用物件类型的时候考虑使用
9. 索引可以优化查询,但当查询的数据量》=collection文档数量一半的时候,该考虑是否应该用索引。
(可以通过测 试验证使用索引时候的效率高还是不使用索引的时候效率高)
10. 合理的组织文档结构能提高mongodb的查询效率
11. Loading JavaScript form file: load(xx.js)
12. 是否应该考虑离线创建索引?备份索引【只能通过备份数据文件的方式才能备份索引】?索引压缩?
13. 在mongodb中使用skip操作,要注意skip较大时候的处理【某些情况下可以使用反向排序】
14. 索引数据类型优化:int < ObjectID < String 【相同记录数量下,索引所占据的空间大小比较】
15. 选择正确的文件系统,应该选择分片空间快速的文件系统,尽量不要用ext3,用ext4或者xfs
16. 如果用的是默认的ObjectId,可以从ObjectId中获取insert的时间【ObjectId对象.getTime(),ObjectId对 象.getTimeSecond()】