- A.16.1. secondary indexes什么类型的操作会修改并导致更改缓冲?
- A.16.2. InnoDB更改缓冲的优点是什么?
- A.16.3. 更改缓冲是否支持其他类型的索引?
- A.16.4. InnoDB为更改缓冲分配了多少空间?
- A.16.5. 如何确定当前更改缓冲的大小?
- A.16.6. 更改缓冲何时合并?
- A.16.7. 更改缓冲何时被刷新?
- A.16.8. 何时应该使用更改缓冲?
- A.16.9. 何时不应该使用更改缓冲?
- A.16.10. 哪里可以找到关于更改缓冲的更多信息?
A.16.1. |
什么类型的操作修改辅助索引并导致更改缓冲? |
|
|
A.16.2. |
|
缓存辅助索引更改时,如果辅助索引页不在缓冲池中,可以避免昂贵的随机访问I/O操作,这些操作需要立即从磁盘读取受影响的索引页。缓存的更改可以稍后批量应用,当页面被其他读取操作读入缓冲池时。 |
|
A.16.3. |
更改缓冲是否支持其他类型的索引? |
否。更改缓冲仅支持辅助索引。聚簇索引、全文索引和空间索引不受支持。全文索引具有自己的缓存机制。 |
|
A.16.4. |
|
在 MySQL 5.6 之前,系统表空间中的更改缓冲的最大大小是 在 MySQL 5.6 及更高版本中,
更改缓冲页面不需要保留在缓冲池中,可以被 LRU 操作 evict。 |
|
A.16.5. |
如何确定当前的更改缓冲大小? |
当前的更改缓冲大小由
相关数据点包括:
有关监控更改缓冲状态的信息,请参阅 第 17.5.2 节,“更改缓冲”。 |
|
A.16.6. |
何时发生更改缓冲合并? |
|
|
A.16.7. |
更改缓冲区何时刷新? |
更新的页面由与刷新缓冲池中的其他页面相同的刷新机制刷新。 |
|
A.16.8. |
何时使用更改缓冲区? |
更改缓冲区是一个旨在减少随机 I/O 到辅助索引的功能,因为这些索引变得越来越大,不再适合 InnoDB 缓冲池。通常,在整个数据集不适合缓冲池、存在大量 DML 活动修改辅助索引页或存在许多经常更改的辅助索引时,应该使用更改缓冲区。 |
|
A.16.9. |
何时不使用更改缓冲区? |
如果整个数据集适合 InnoDB 缓冲池、只有少量辅助索引或使用固态存储(其中随机读取速度与顺序读取速度相似),那么您可能需要禁用更改缓冲区。在进行配置更改之前,建议使用代表性工作负载运行测试,以确定禁用更改缓冲区是否提供任何益处。 |
|
A.16.10. |
哪里可以找到关于更改缓冲区的更多信息? |
请参阅 第 17.5.2 节,“更改缓冲区”。 |