Details
-
Bug
-
Status: Stalled (View Workflow)
-
Critical
-
Resolution: Unresolved
-
10.4(EOL), 10.5, 10.6, 10.7(EOL), 10.8(EOL), 10.9(EOL), 10.10(EOL), 10.11, 11.0(EOL), 11.1(EOL), 11.2(EOL)
Description
As noted in MDEV-31558, a covering secondary index read in InnoDB would look up the clustered index record twice and retrieve the matching version. In the test innodb.mvcc_secondary we have a table with 2 versions of 1 row, and the first SELECT statement would construct the old version of the clustered index not once, but twice.
MDEV-20301 replaced row_sel_get_clust_rec_for_mysql() with Row_sel_get_clust_rec_for_mysql::operator(), which adds some caching. It missed an opportunity to remove the call row_sel_sec_rec_is_for_clust_rec() and to perform those checks as part of the loop that invokes row_sel_build_prev_vers_for_mysql().
Attachments
Issue Links
- relates to
-
MDEV-32286 ANALYZE displays a huge number of InnoDB secondary index pages_accessed
-
- Confirmed
-
-
MDEV-17598 InnoDB index option for per-record transaction ID
-
- Open
-
-
MDEV-20301 InnoDB's MVCC has O(N^2) behaviors
-
- Closed
-
-
MDEV-31558 Add InnoDB engine information to the slow query log
-
- Closed
-
Activity
Transition | Time In Source Status | Execution Times |
---|
|
22m 34s | 1 |
|
11d 1h 31m | 1 |
|
193d 22h 16m | 1 |