row_end is not used when searching by PRIMARY KEY
create table t (pk int primary key) with system versioning;
|
insert into t values (1), (2);
|
explain extended delete from t where pk=1;
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
1 SIMPLE t range PRIMARY PRIMARY 4 NULL 1 100.00 Using where
|
explain extended update t set pk=11 where pk=1;
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
1 SIMPLE t range PRIMARY PRIMARY 4 NULL 1 100.00 Using where; Using buffer
|
Both queries should affect only current system rows. In both queries PK is used which consists of (pk, row_end). row_end = current_timestamp is implied and it would be useful to use second keypart for filtering. But EXPLAIN shows only 4 bytes of key is used which means pk only.
Using row_end will not change correctness. But it can speed up some queries a bit.