Details
-
Task
-
Status: Closed (View Workflow)
-
Minor
-
Resolution: Fixed
-
None
Description
Development task: MDEV-4345
LP tree: lp:maria/10.0
New variable/option:
optimizer_selectivity_sampling_limit (default 100)
+ Controls number of record samples to check condition
|
+ selectivity
|
|
+ ulong check_rows=
|
+ min(thd->variables.optimizer_selectivity_sampling_limit,
|
+ (ulong) (table_records * SELECTIVITY_SAMPLING_SHARE));
|
+ if (cond && check_rows > SELECTIVITY_SAMPLING_THRESHOLD &&
|
+ thd->variables.optimizer_use_condition_selectivity > 4)
|
+#define SELECTIVITY_SAMPLING_SHARE 0.10
|
+#define SELECTIVITY_SAMPLING_LIMIT 5000
|
|
|
+/* check this number of rows (default value) */
|
+#define SELECTIVITY_SAMPLING_LIMIT 5000
|
+/* but no more then this part of table (10%) */
|
+#define SELECTIVITY_SAMPLING_SHARE 0.10
|
+/* do not check if we are going check less then this number of records */
|
+#define SELECTIVITY_SAMPLING_THRESHOLD 10
|
+ "5 - additionally use selectivity of certain non-range predicates "
|
+ "calculated on record samples",
|
Attachments
Issue Links
- is blocked by
-
MDEV-4428 MWL#253: Assertion `join->best_read < double(..) fails in greedy_search with selectivity=3 and use_stat_tables, without ANALYZE
- Closed
-
MDEV-4429 MWL#253: Assertion `join->best_read < double(...) fails with optimizer_use_condition_selectivity=3, table statistics
- Closed
- relates to
-
MDEV-4345 Fix table selectivity by sampling some probably very selective predicates
- Closed