我正在尝试确定MySQL更新索引的情况.说我有下表:
CREATE TABLE MyTable (
ID INT NOT NULL AUTO_INCREMENT,MyIndexedColumn VARCHAR NOT NULL,MyNonIndexedColumn VARCHAR,PRIMARY KEY (ID),INDEX MyNewIndex(MyIndexedColumn)
)
然后我运行以下sql来插入一行:
INSERT INTO MyTable (MyIndexedColumn,MyNonIndexedColumn)
VALUES ('MyTestValue','MyTestValue');
据我所知,这个查询会在MysqL中为B-Tree索引添加某种哈希键,用于值’MyTestValue’.
现在,如果我运行以下语句,即使我没有更改列的值,是否会强制更新B-Tree索引?
UPDATE MyTable SET MyIndexedColumn = 'MyTestValue',MyNonIndexedColumn = 'A New Value' WHERE ID = 1;
MysqL足够聪明,可以确定吗?或者只是将该列作为更新语句的一部分,我告诉MysqL可能已经发生了变化,它应该做更新索引的工作吗?
最佳答案
原文链接:https://www.f2er.com/mysql/434129.html