我目前正在为我的一个 MySQL 表编制索引,并且已经到了需要专家建议如何进行的地步。
该表的结构类似于以下内容:
ProductID - INT - UNSIGNED - NOT NULL - AUTO INCREMENT - PRIMARY KEY
ProductName - VARCHAR(64) - NOT NULL
ProductViews - INT - UNSIGNED - NOT NULL
在 WHERE 子句中使用的唯一字段是 ProductID。 ORDER BY 中使用的唯一字段是 ProductViews。
该表相当大,因此典型的查询(当连接到另一个表时)可能需要一些时间。 在典型查询上运行 EXPLAIN 显示由于 ProductViews 字段,MySQL 显示“额外:使用位置;使用文件排序”
我想为 ProductViews 编制索引以摆脱文件排序,但是每次访问该页面时该字段中的值都会递增 1。
索引一个不断变化的字段是否合理,或者不断写入会降低性能吗?在这种情况下,我真的不能做很多事情,不得不忍受文件排序问题吗?
最佳答案
您问的是索引的 yield 是否超过成本。我会说文件排序非常昂贵,值得在这里使用索引。
但唯一真正的答案只能通过测量找到。设置标准(如网页加载速度)并使用和不使用索引进行测量。
关于mysql - 索引一个不断变化的字段是否合理,或者不断写入会降低性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5165507/