A.Recycle Pool 用于存储临时使用的、不被经常使用的较大的对象,避免导致默认池和保持池中的块老化而退出缓存。
B. DEFAULT Pool 采用 LRU 管理,更热的对象频繁访问时,原有 LRU 冷端的对象可能被 age out。
C.Recycle Pool 是为了让内存中的数据尽快被回收,设立的池
D.Keep Pool 中并不是热点表一直能够缓存,当 keep pool 不够的时候,最先缓存到 keep pool 的对象会被挤出
答案:ABD
解析:Keep Buffer Pool 的作用是缓存那些需要经常查询的对象但又容易被默认缓冲区置换出去的对象,按惯例,Keep pool 设置为合理的大小,以使其中存储的对象不再age out,也就是查询这个对象的操作不会引起磁盘IO操作,可以极大地提高查询性能。
并不是我们设置了 keep pool 之后,热点表就一定能够缓存在 keep pool ,keep pool 同样也是由 LRU 链表管理的,当 keep pool 不够的时候,最先缓存到 keep pool 的对象会被挤出,不过与 default pool 中的 LRU 的管理方式不同,在 keep pool 中表永远是从 MRU 移动到 LRU,不会由于你做了 F TS 而将表缓存到 LRU 端,在 keep pool 中对象永远是先进先出。
Recycle Buffer Pool 正好相反。Recycle Buffer Pool 用于存储临时使用的、不被经常使用的较大的对象,这些对象放置在 Default Buffer Pool 显然是不合适的,这些块会导致过量的缓冲区刷新输出,而且不会带来任何好处,因为等你想要再用这个块时,它可已经老化退出了缓存。要把这些段与默认池和保持池中的段分开,这样就不会导致默认池和保持池中的块老化而退出缓存。




