Question: 6
Which three allocate memory per thread in MySQL?
A. query cache
B. thread cache
C. read buffer
D. internal temporary table
E. sort buffer
F. InnoDB buffer pool instance
答案:CDE
解析:
- query cache是全局缓存,用于缓存查询结果,所有client都可以使用;
- thread cache作用是当client连接断开后,对应的线程会被放入thread cache进行复用,提高建立连接的性能,在有大量新连接的场景中很有作用,是全局缓存;
- read buffer 对每个MyISAM表进行顺序读的每个线程是都会给每个表分配一个read buffer,是线程级内存;innodb用不到。
- 在进行union、sort by、group by、distinct、insert…select等场景时,会创建临时表,这些临时表是线程级的,随着线程释放而消失。
- sort buffer 执行排序的会话都会分配一个sort buffer,所有引擎都适用,是线程级内存。