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