monkeydream 我大概算算 MySQL 单表,受限于 IO 的读并发吧:假设:- B+ 树 4 层 *(若 InnoDB 、Dynamic 、16 KB 每页、8 字节主键、1 KB 一条消息,可容纳 110 亿)*- 缓存前两层 *( 14 MB 内存代价)*- 有 `(uid 4 字节, time 5 字节)` 索引- 每个用户每次获取不超过 700 条消息 *(此时索引只需读一个叶节点)*- **不缓存实际消息** *(就当所有用户都在获取历史消息吧。因为每个叶节点可能存着 15 个不同用户的消息,太散了,不会算『每次一个用户获取一堆消息时,能利用上多少缓存』,直接按最差情况算)*设每秒有 x 人请求,平均每人有 y 条消息要获取,硬盘有 z 个 16 KB 的 IOPS ,那么:2x (每人消耗 2 次 IO 去索引读取自某个时间以来的消息 ID 列表) + 2xy (每条消息都要 2 次 IO 去消息表读取) <= z如,我的垃圾固态,16 KB 有 25000 IOPS (也就 400 多 MB/s )。那么:每秒 100 人要获取消息时,平均每人能得到(不在缓存中的) 124 条历史消息?(数据库新手,算的不对,恳请指出)