mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
Added optimizer_costs.h which includes all optimizer costs
This makes it easier to see how costs changes over commits
This commit is contained in:
committed by
Sergei Petrunia
parent
e6205c966d
commit
034aedadf2
@@ -199,41 +199,6 @@
|
||||
#define MIN_ROWS_TO_USE_TABLE_CACHE 100
|
||||
#define MIN_ROWS_TO_USE_BULK_INSERT 100
|
||||
|
||||
/**
|
||||
The following is used to decide if MySQL should use table scanning
|
||||
instead of reading with keys. The number says how many evaluation of the
|
||||
WHERE clause is comparable to reading one extra row from a table.
|
||||
*/
|
||||
#define TIME_FOR_COMPARE 5.0 // 5 WHERE compares == one read
|
||||
#define TIME_FOR_COMPARE_IDX 20.0
|
||||
|
||||
#define IDX_BLOCK_COPY_COST ((double) 1 / TIME_FOR_COMPARE)
|
||||
#define IDX_LOOKUP_COST ((double) 1 / 8)
|
||||
#define MULTI_RANGE_READ_SETUP_COST (IDX_BLOCK_COPY_COST/10)
|
||||
|
||||
/**
|
||||
Number of comparisons of table rowids equivalent to reading one row from a
|
||||
table.
|
||||
*/
|
||||
#define TIME_FOR_COMPARE_ROWID (TIME_FOR_COMPARE*100)
|
||||
|
||||
/* cost1 is better that cost2 only if cost1 + COST_EPS < cost2 */
|
||||
#define COST_EPS 0.001
|
||||
|
||||
/*
|
||||
For sequential disk seeks the cost formula is:
|
||||
DISK_SEEK_BASE_COST + DISK_SEEK_PROP_COST * #blocks_to_skip
|
||||
|
||||
The cost of average seek
|
||||
DISK_SEEK_BASE_COST + DISK_SEEK_PROP_COST*BLOCKS_IN_AVG_SEEK =1.0.
|
||||
*/
|
||||
#define DISK_SEEK_BASE_COST ((double)0.9)
|
||||
|
||||
#define BLOCKS_IN_AVG_SEEK 128
|
||||
|
||||
#define DISK_SEEK_PROP_COST ((double)0.1/BLOCKS_IN_AVG_SEEK)
|
||||
|
||||
|
||||
/**
|
||||
Number of rows in a reference table when refereed through a not unique key.
|
||||
This value is only used when we don't know anything about the key
|
||||
@@ -241,21 +206,6 @@
|
||||
*/
|
||||
#define MATCHING_ROWS_IN_OTHER_TABLE 10
|
||||
|
||||
/*
|
||||
Subquery materialization-related constants
|
||||
*/
|
||||
#define HEAP_TEMPTABLE_LOOKUP_COST 0.05
|
||||
#define DISK_TEMPTABLE_LOOKUP_COST 1.0
|
||||
#define SORT_INDEX_CMP_COST 0.02
|
||||
|
||||
|
||||
#define COST_MAX (DBL_MAX * (1.0 - DBL_EPSILON))
|
||||
|
||||
#define COST_ADD(c,d) (COST_MAX - (d) > (c) ? (c) + (d) : COST_MAX)
|
||||
|
||||
#define COST_MULT(c,f) (COST_MAX / (f) > (c) ? (c) * (f) : COST_MAX)
|
||||
|
||||
|
||||
#define MY_CHARSET_BIN_MB_MAXLEN 1
|
||||
|
||||
/** Don't pack string keys shorter than this (if PACK_KEYS=1 isn't used). */
|
||||
|
Reference in New Issue
Block a user