shoudong 设置自增 id 有好处或者害处吗?
自增 id 和 objectId 各有优劣处。
自增 id 缺点: 容易被人识别从而用机器来爬,当然这点对于论坛之类的反而是好处. 容易被竞争对手做出统计数据
优点: 站内统计很方便,id 短小,节约各种资源,可以用 id 代替 createTime 来排序 等等
objectId 缺点: 太长了,太难记了,耗费数据库空间和 log 空间
优点: 安全性高,可以分布式计算,无计算 IO
高并发在很长一段时间内其实根本不是问题,发帖本来就是少数行为,即便是 mongodb 的 findAndModify + $inc 的组合,速度也足以支持至少几千个 id 的生成。 (我测了下,在我机器大概 1 秒最快能生成 6k 个)
除非需要微博那种发帖量 引致网上
目前我知道新浪微博最高峰 3 万 2 每秒,Twitter 最高峰 2 万 5 每秒。 欧洲杯决赛时,Twitter 峰值 1 万 5 每秒 世界杯刘翔摔倒后,新浪微博峰值 1 万 9 每秒
http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/
Warning Generally in MongoDB, you would not use an auto-increment pattern for the _id field, or any field, because it does not scale for databases with large numbers of documents. Typically the default value ObjectId is more ideal for the _id.
用自增数字 ID 有两点原因:
created_at
字段上面增加额外的索引。