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