作者回复: 👍加油
作者回复: 对的,我们之前讨论过server层的cache,主要是是根据我们查询SQL的hash值作为key,查询结果作为value值保存在cache层。而存储引擎层的缓冲池,缓冲了很多类型的数据,例如索引页、数据页等。
如果一张表的数据经常被新增、更新、删除,则导致Cache层的失效率非常高,从而导致频繁清除已缓存的数据,server层的cache可能会增加数据库的性能,在MySQL8.0已经移除该功能,建议我们在业务层或数据库中间代理层来缓存查询的结果。例如mybatis和hibernate中利用一级缓存来缓存频繁查询的数据。
作者回复: 优先与缓冲池交互。问题已改正,谢谢指正。
作者回复: 如果是同一时刻都进入到数据库,其他9000人肯定是在等待状态。数据库操作都是毫秒级的,1000人使用完之后,空闲的连接会被释放出来,所以哪怕是9000人等待,后面也会在一秒之内完成。
作者回复: 在InnoDB 1.1之前,这个动作在master thread中进行,在1.1之后,独立到了purge thread中进行,所以是一回事。
作者回复: 不会的,还有一层缓冲池
作者回复: 一起进步