mysql - 不使用索引减少更新查询的行扫描

标签 mysql sql-update innodb explain

我正在使用MySQL InnoDB引擎。以下解释更新查询的结果是

EXPLAIN UPDATE H_M_SAMP SET NEW_M_ID=17 WHERE M_ID IN(363)

EXPLAIN QUERY RESULT

H_M_SAMP 表的主键是 H_M_ID。并且没有外键关系。

是否可以通过更新查询减少扫描行数,而不使用 M_ID 上的索引,因为我必须多次更新表?

谢谢。

最佳答案

是的。您想要在 H_M_SAMP(M_ID) 上建立索引:

create index idx_h_m_sampe_1 on h_m_sampe(m_id);

关于mysql - 不使用索引减少更新查询的行扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28741431/

相关文章:

php - MYSQL多词搜索结果

mysql - 每周一次将某些数据从一个表更新到另一个表

php - MySQL 更新查询中的 'field list' 错误中的未知列

asp.net - 从两个列表框控件插入表格

mysql - 如何将属于数据库 "A"的表中的数据更新/插入到属于数据库 "B"的表中?

java - 使用 Hibernate 仅更新特定列

MySQL:LOAD DATA INFILE 产生不正确的表结果

MySQL InnoDB 比 MyISAM 慢得多

mysql - 表大小看起来更大,但是当我下载数据库时,表大小似乎更小,这背后的原因是什么?

JAVA如何存储mysql登录信息