mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fix Bug#56340 innodb updates index stats too frequently after non-index updates
This is a simple optimization issue. All stats are related to only indexed columns, index size or number of rows in the whole table. UPDATEs that touch only non-indexed columns cannot affect stats and we can avoid calling the function row_update_statistics_if_needed() which may result in unnecessary I/O. Approved by: Marko (rb://466)
This commit is contained in:
@ -1447,7 +1447,12 @@ run_again:
|
|||||||
srv_n_rows_updated++;
|
srv_n_rows_updated++;
|
||||||
}
|
}
|
||||||
|
|
||||||
row_update_statistics_if_needed(prebuilt->table);
|
/* We update table statistics only if it is a DELETE or UPDATE
|
||||||
|
that changes indexed columns, UPDATEs that change only non-indexed
|
||||||
|
columns would not affect statistics. */
|
||||||
|
if (node->is_delete || !(node->cmpl_info & UPD_NODE_NO_ORD_CHANGE)) {
|
||||||
|
row_update_statistics_if_needed(prebuilt->table);
|
||||||
|
}
|
||||||
|
|
||||||
trx->op_info = "";
|
trx->op_info = "";
|
||||||
|
|
||||||
|
@ -1422,7 +1422,12 @@ run_again:
|
|||||||
srv_n_rows_updated++;
|
srv_n_rows_updated++;
|
||||||
}
|
}
|
||||||
|
|
||||||
row_update_statistics_if_needed(prebuilt->table);
|
/* We update table statistics only if it is a DELETE or UPDATE
|
||||||
|
that changes indexed columns, UPDATEs that change only non-indexed
|
||||||
|
columns would not affect statistics. */
|
||||||
|
if (node->is_delete || !(node->cmpl_info & UPD_NODE_NO_ORD_CHANGE)) {
|
||||||
|
row_update_statistics_if_needed(prebuilt->table);
|
||||||
|
}
|
||||||
|
|
||||||
trx->op_info = "";
|
trx->op_info = "";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user