MySQL 更新数据机制
一、问题描述
假设我们有这样一张表,且包含一条记录:
CREATE TABLE mytest
(
id
int(11) NOT NULL,
c1
int(11) DEFAULT NULL,
c2
int(11) DEFAULT NULL,
c3
int(11) DEFAULT NULL,
PRIMARY KEY (id
),
KEY c1
(c1
),
KEY c2
(c2
)
包含记录:
±—±-----±-----±-----+
| id | c1 | c2 | c3 |
±—±-----±-----±-----+
| 1 | 11 | 12 | 13 |
这个表实际上包含3个索引:
主键索引(且值包含一个block)
索引c1(且值包含一个block)
索引c2(且值包含一个block)
那么我们考虑如下的语句:
A: update mytest set c1=11,c2=12,c3=13 where id=1(c1\c2\c3字段都不更改)
B: update mytest set c1=11,c2=12,c3=14 where id=1(c1\c2字段不