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]
- Stalled
-
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...