假设我有一个 mysql 数据库表 'article',其中包含以下字段:id
、title
、url
、views
我的字段 title
标有 FULLTEXT
索引,字段 url
标有 UNIQUE
索引.
我的问题是,如果我做一个像这样的普通更新:
UPDATE 'article' SET views = views + 1 WHERE id = {id}
...这会导致更新 mysql 表索引吗?
将字段 views
保留在表 article
中是否安全(从速度的角度来看),或者我应该创建一个单独的表,比方说,article_stats
包含以下字段:article_id
、views
?
最佳答案
是的,UPDATE
语句更新索引。 MySQL 自动管理索引——您无需担心手动更新它们或触发更新。如果您询问那个特定的 UPDATE
是否会更改不包括 views
列的索引 - 不,它不会。仅更新相关索引。
保留 views
列很好,除非您需要跟踪有关每个 View 的额外信息(发生时间、创建 View 的用户等)
但是,您的 SQL 确实包含语法错误。您不能引用像 'article'
这样的表名。如果你需要引用一个表名(例如,如果它包含一个 SQL 保留字),那么使用这样的反引号:
UPDATE `article` SET ...
关于mysql - mysql索引是否在更新时修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10081564/