我对 MySQL 的背景知识并不多,我想知道是否有人能给我一些关于 MySQL 查询优化器以及在确定查询执行的查询计划时对磁盘访问成本的影响的见解。我感兴趣的是,收集的有关磁盘访问时间的任何统计数据是否会对一组固定查询的查询执行计划产生影响。特别是,当在位于不同驱动器上且性能不同的同一数据库映像上运行同一组查询时。(请注意,从 MySQL 的角度来看,这是同一个数据库;数据目录只是位于不同的驱动器上,在 MySQL 不知情的情况下在“下方”切换)。观察到的磁盘性能的这种变化是否可能影响查询优化器在运行时做出的查询计划决策?我预计优化器在考虑磁盘访问之前可以做很多与 SQL 本身更相关的事情,但你们中的一些人在处理查询优化器方面比我更有经验。
谢谢您的帮助!
答案1
据我所知,MySQL 不会收集磁盘访问时间的统计信息或在查询优化器中使用它们。MySQL 中的一个成本单位 = 随机读取 4KB 的数据页。这是 2007 年的,因此可能已发生变化。