Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
Description
There is a cleanup task for several things in the optimizer.
- Ensure that 0 <= selectivity <= 1
- Ensure that selectivity calculation doesn't return too few row
- Calculate and use index only cost when appropriate.
- Examine and improve cost calculation in the optimizer for:
- filters
- Ensure that filter cost calculation also include index only cost and compare with WHERE
- ranges
- table scans
- hash and joins and cached full joins
- group by
- Adjusted Range_rowid_filter_cost_info lookup cost for very small arrays.
- Limit calculated rows to the number of rows in the table
- Ensure that test_quick_select doesn't return more rows than in the table
A lot of other optimizer related issues, documented at
https://mariadb.com/kb/en/the-optimizer-cost-model-from-mariadb-11-0/
Attachments
Issue Links
- blocks
-
MDEV-25830 optimizer_use_condition_selectivity=4 sometimes produces worse plan than optimizer_use_condition_selectivity=1
-
- Closed
-
- causes
-
MDEV-30088 Assertion `cond_selectivity <= 1.0' failed in get_range_limit_read_cost
-
- Closed
-
-
MDEV-30098 Server crashes in ha_myisam::index_read_map with index_merge_sort_intersection=on
-
- Closed
-
-
MDEV-30104 Server crashes in handler_rowid_filter_check upon ANALYZE TABLE
-
- Closed
-
-
MDEV-30256 Wrong result (missing rows) upon join with empty table
-
- Closed
-
-
MDEV-30310 Assertion failure in best_access_path upon IN exceeding IN_PREDICATE_CONVERSION_THRESHOLD, derived_with_keys=off
-
- Closed
-
-
MDEV-30313 Sporadic assertion `cond_selectivity <= 1.0' failure in get_range_limit_read_cost
-
- Closed
-
-
MDEV-30327 Client crashes in print_last_query_cost
-
- Closed
-
-
MDEV-30328 Assertion `avg_io_cost != 0.0 || index_cost.io + row_cost.io == 0' failed in Cost_estimate::total_cost()
-
- Closed
-
-
MDEV-30360 Assertion `cond_selectivity <= 1.000000001' failed in get_range_limit_read_cost with LIMIT .. OFFSET
-
- Closed
-
-
MDEV-30373 Wrong result with range access
-
- Closed
-
-
MDEV-30395 Wrong result with semijoin and Federated as outer table
-
- Closed
-
-
MDEV-30525 Assertion `ranges > 0' fails in IO_AND_CPU_COST handler::keyread_time
-
- Closed
-
-
MDEV-30529 Assertion `rnd_records <= s->found_records' failed in best_access_path
-
- Closed
-
-
MDEV-30540 Wrong result with IN list length reaching IN_PREDICATE_CONVERSION_THRESHOLD
-
- Closed
-
-
MDEV-30568 Assertion `cond_selectivity <= 1.000000001' failed in get_range_limit_read_cost on empty Merge table
-
- Closed
-
-
MDEV-30569 Assertion `!(p->table->table->file->ha_table_flags() & (1ULL << 60))' failed in Duplicate_weedout_picker::check_qep
-
- Closed
-
-
MDEV-30603 Wrong result with non-default JOIN_CACHE_LEVEL=[4|5] and USE_STAT_TABLES=[NEVER|COMPLEMENTARY]
-
- Closed
-
-
MDEV-31237 Assertion `!(tab->select && tab->select->quick)' failed in make_join_readinfo
-
- Closed
-
-
MDEV-31243 Assertion `field->orig_table->stats_is_read' failed in is_eits_usable with JOIN_CACHE_LEVEL > 2
-
- Confirmed
-
-
MDEV-31247 Assertion `c >= 0' failed in COST_MULT upon query with many joins
-
- Closed
-
-
MDEV-31258 Assertion `cond_selectivity <= 1.000000001' upon range query (actual value 1.33)
-
- Closed
-
-
MDEV-31864 Assertion `d >= 0' failed in COST_ADD with join_cache_level > 2 and partitions
-
- Closed
-
- includes
-
MDEV-30486 Table is not eliminated in bb-11.0
-
- Closed
-
- relates to
-
MDEV-30375 Server crashes in TABLE_LIST::is_active_sjm/TABLE_LIST::is_sjm_scan_table after query WITH ROLLUP
-
- Closed
-
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
Activity
Field | Original Value | New Value |
---|---|---|
Status | Open [ 1 ] | In Progress [ 3 ] |
Description |
There is a cleanup task for several things in the optimizer.
- Ensure that selectivity is <= 0 - Ensure that selectivity calculation doesn't return too few row - Calculate and use index only cost when appropriate. - Examine and improve cost calculation in the optimizer for - filters - Ensure that filter cost calculation also include index only cost and compare with WHERE - ranges - table scans - hash and full joins - group by - Adjusted Range_rowid_filter_cost_info lookup cost for very small arrays. - Limit calculated rows to the number of rows in the table - Ensure that test_quick_select doesn't return more rows than in the table |
There is a cleanup task for several things in the optimizer.
- Ensure that 0 <= selectivity <= 1 - Ensure that selectivity calculation doesn't return too few row - Calculate and use index only cost when appropriate. - Examine and improve cost calculation in the optimizer for - filters - Ensure that filter cost calculation also include index only cost and compare with WHERE - ranges - table scans - hash and full joins - group by - Adjusted Range_rowid_filter_cost_info lookup cost for very small arrays. - Limit calculated rows to the number of rows in the table - Ensure that test_quick_select doesn't return more rows than in the table |
Workflow | MariaDB v3 [ 126997 ] | MariaDB v4 [ 131853 ] |
Link |
This issue blocks |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32652 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32654 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32665 ] |
Priority | Major [ 3 ] | Critical [ 2 ] |
Description |
There is a cleanup task for several things in the optimizer.
- Ensure that 0 <= selectivity <= 1 - Ensure that selectivity calculation doesn't return too few row - Calculate and use index only cost when appropriate. - Examine and improve cost calculation in the optimizer for - filters - Ensure that filter cost calculation also include index only cost and compare with WHERE - ranges - table scans - hash and full joins - group by - Adjusted Range_rowid_filter_cost_info lookup cost for very small arrays. - Limit calculated rows to the number of rows in the table - Ensure that test_quick_select doesn't return more rows than in the table |
There is a cleanup task for several things in the optimizer.
- Ensure that 0 <= selectivity <= 1 - Ensure that selectivity calculation doesn't return too few row - Calculate and use index only cost when appropriate. - Examine and improve cost calculation in the optimizer for: - filters - Ensure that filter cost calculation also include index only cost and compare with WHERE - ranges - table scans - hash and joins and cached full joins - group by - Adjusted Range_rowid_filter_cost_info lookup cost for very small arrays. - Limit calculated rows to the number of rows in the table - Ensure that test_quick_select doesn't return more rows than in the table |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32680 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32694 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32727 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32747 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32652 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 32654 ] |
Fix Version/s | 10.9 [ 26905 ] | |
Fix Version/s | 10.8 [ 26121 ] |
Fix Version/s | 10.10 [ 27530 ] | |
Fix Version/s | 10.9 [ 26905 ] |
Fix Version/s | 10.11 [ 27614 ] | |
Fix Version/s | 10.10 [ 27530 ] |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Fix Version/s | 11.0 [ 28320 ] | |
Fix Version/s | 10.11 [ 27614 ] |
Status | In Progress [ 3 ] | In Testing [ 10301 ] |
Assignee | Michael Widenius [ monty ] | Elena Stepanova [ elenst ] |
Description |
There is a cleanup task for several things in the optimizer.
- Ensure that 0 <= selectivity <= 1 - Ensure that selectivity calculation doesn't return too few row - Calculate and use index only cost when appropriate. - Examine and improve cost calculation in the optimizer for: - filters - Ensure that filter cost calculation also include index only cost and compare with WHERE - ranges - table scans - hash and joins and cached full joins - group by - Adjusted Range_rowid_filter_cost_info lookup cost for very small arrays. - Limit calculated rows to the number of rows in the table - Ensure that test_quick_select doesn't return more rows than in the table |
There is a cleanup task for several things in the optimizer.
- Ensure that 0 <= selectivity <= 1 - Ensure that selectivity calculation doesn't return too few row - Calculate and use index only cost when appropriate. - Examine and improve cost calculation in the optimizer for: - filters - Ensure that filter cost calculation also include index only cost and compare with WHERE - ranges - table scans - hash and joins and cached full joins - group by - Adjusted Range_rowid_filter_cost_info lookup cost for very small arrays. - Limit calculated rows to the number of rows in the table - Ensure that test_quick_select doesn't return more rows than in the table A lot of other optimizer related issues, documented at https://mariadb.com/kb/en/the-optimizer-cost-model-from-mariadb-11-0/ |
issue.field.resolutiondate | 2022-12-27 18:03:55.0 | 2022-12-27 18:03:55.285 |
Fix Version/s | 11.0.0 [ 28500 ] | |
Fix Version/s | 11.0 [ 28320 ] | |
Resolution | Fixed [ 1 ] | |
Status | In Testing [ 10301 ] | Closed [ 6 ] |
Resolution | Fixed [ 1 ] | |
Status | Closed [ 6 ] | Stalled [ 10000 ] |
Comment |
[ Was fixed as by the fix for |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Fix Version/s | 11.0 [ 28320 ] | |
Fix Version/s | 11.0.0 [ 28500 ] |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue relates to |
Status | Stalled [ 10000 ] | In Testing [ 10301 ] |
Link |
This issue causes |
Link |
This issue includes |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Link |
This issue causes |
Assignee | Elena Stepanova [ elenst ] | Sergei Golubchik [ serg ] |
Status | In Testing [ 10301 ] | Stalled [ 10000 ] |
Fix Version/s | 11.0.1 [ 28548 ] | |
Fix Version/s | 11.0 [ 28320 ] | |
Assignee | Sergei Golubchik [ serg ] | Michael Widenius [ monty ] |
Resolution | Fixed [ 1 ] | |
Status | Stalled [ 10000 ] | Closed [ 6 ] |
Link |
This issue causes |
Link |
This issue causes |
Link | This issue causes MDEV-31243 [ MDEV-31243 ] |
Link |
This issue causes |
Link |
This issue causes |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 36687 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 36755 ] |
Remote Link | This issue links to "Page (MariaDB Confluence)" [ 36687 ] |
Zendesk Related Tickets | 201658 | |
Zendesk active tickets | 201658 |
Hello Michael,
I am interested in understanding this task in detail. The description for this task is very concise and hard to understand what the task is really about. It will be really great if you could elaborate each point in detail.
Few specific questions:
1. The description says "Ensure that 0 <= selectivity <= 1" – does this mean this task applies only when optimizer_use_condition_selectivity=1 ?
2. What MariaDB versions are affected by this cleanup task ?
Please let me know.
Thank you
Thejaka