所以我查阅了有关 MySQL 中索引的文献,但我仍然对以下内容感到困惑。有人解释说,索引可能会在计算时间方面减慢 MySQL 查询的速度。有人解释说,这是基于在具有所述索引的表上操作的查询,称为 say index_A
。我知道在某些时候 MySQL 必须重写它的索引文件INDEX_A
作为在相关表上发生的 UPDATE、INSERT 或 DELETE 查询的结果。我不明白这到底是怎么发生的。必须在每次 UPDATE、INSERT 或 DELETE 之后发生吗?(这似乎不是这种情况。)或者在发出重写之前是否需要执行一定数量的上述操作?(在这种情况下我怎么知道有多少?)或者这是否也取决于用于该表的引擎?基本上,我希望更好地了解可能导致我的索引减慢查询速度的原因,以便在生产中更好地避免这种情况。如果我所问的任何问题不清楚,请告诉我,并感谢您的宝贵时间。
编辑:似乎答案在于更好地理解 Rtrees 和 Btrees。这些是用于管理 MySQL 中各种引擎中的索引的结构。我将进一步审查这些,并希望很快就我的发现发表明确的答案。