mirror of
https://github.com/MariaDB/server.git
synced 2026-05-14 19:07:15 +02:00
dict0dict.c:
Add some UNIV_LIKELY and UNIV_UNLIKELY hints. dict_tree_copy_rec_order_prefix(): Add a UNIV_PREFETCH_R hint on rec. innobase/dict/dict0dict.c: Add some UNIV_LIKELY and UNIV_UNLIKELY hints. dict_tree_copy_rec_order_prefix(): Add a UNIV_PREFETCH_R hint on rec.
This commit is contained in:
parent
c546b5f3b5
commit
f2c13c3f4f
1 changed files with 13 additions and 10 deletions
|
|
@ -1443,7 +1443,7 @@ dict_index_add_to_cache(
|
||||||
|
|
||||||
/* Increment the ord_part counts in columns which are ordering */
|
/* Increment the ord_part counts in columns which are ordering */
|
||||||
|
|
||||||
if (index->type & DICT_UNIVERSAL) {
|
if (UNIV_UNLIKELY(index->type & DICT_UNIVERSAL)) {
|
||||||
n_ord = new_index->n_fields;
|
n_ord = new_index->n_fields;
|
||||||
} else {
|
} else {
|
||||||
n_ord = dict_index_get_n_unique(new_index);
|
n_ord = dict_index_get_n_unique(new_index);
|
||||||
|
|
@ -1472,7 +1472,7 @@ dict_index_add_to_cache(
|
||||||
new_index->tree = tree;
|
new_index->tree = tree;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(new_index->type & DICT_UNIVERSAL)) {
|
if (!UNIV_UNLIKELY(new_index->type & DICT_UNIVERSAL)) {
|
||||||
|
|
||||||
new_index->stat_n_diff_key_vals =
|
new_index->stat_n_diff_key_vals =
|
||||||
mem_heap_alloc(new_index->heap,
|
mem_heap_alloc(new_index->heap,
|
||||||
|
|
@ -1673,7 +1673,7 @@ dict_index_copy_types(
|
||||||
dtype_t* type;
|
dtype_t* type;
|
||||||
ulint i;
|
ulint i;
|
||||||
|
|
||||||
if (index->type & DICT_UNIVERSAL) {
|
if (UNIV_UNLIKELY(index->type & DICT_UNIVERSAL)) {
|
||||||
dtuple_set_types_binary(tuple, n_fields);
|
dtuple_set_types_binary(tuple, n_fields);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
@ -1769,7 +1769,7 @@ dict_index_build_internal_clust(
|
||||||
dict_index_copy(new_index, index, 0, index->n_fields);
|
dict_index_copy(new_index, index, 0, index->n_fields);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (index->type & DICT_UNIVERSAL) {
|
if (UNIV_UNLIKELY(index->type & DICT_UNIVERSAL)) {
|
||||||
/* No fixed number of fields determines an entry uniquely */
|
/* No fixed number of fields determines an entry uniquely */
|
||||||
|
|
||||||
new_index->n_uniq = ULINT_MAX;
|
new_index->n_uniq = ULINT_MAX;
|
||||||
|
|
@ -3672,7 +3672,7 @@ dict_tree_find_index_low(
|
||||||
table = index->table;
|
table = index->table;
|
||||||
|
|
||||||
if ((index->type & DICT_CLUSTERED)
|
if ((index->type & DICT_CLUSTERED)
|
||||||
&& (table->type != DICT_TABLE_ORDINARY)) {
|
&& UNIV_UNLIKELY(table->type != DICT_TABLE_ORDINARY)) {
|
||||||
|
|
||||||
/* Get the mix id of the record */
|
/* Get the mix id of the record */
|
||||||
ut_a(!table->comp);
|
ut_a(!table->comp);
|
||||||
|
|
@ -3828,7 +3828,7 @@ dict_tree_build_node_ptr(
|
||||||
|
|
||||||
ind = dict_tree_find_index_low(tree, rec);
|
ind = dict_tree_find_index_low(tree, rec);
|
||||||
|
|
||||||
if (tree->type & DICT_UNIVERSAL) {
|
if (UNIV_UNLIKELY(tree->type & DICT_UNIVERSAL)) {
|
||||||
/* In a universal index tree, we take the whole record as
|
/* In a universal index tree, we take the whole record as
|
||||||
the node pointer if the reord is on the leaf level,
|
the node pointer if the reord is on the leaf level,
|
||||||
on non-leaf levels we remove the last field, which
|
on non-leaf levels we remove the last field, which
|
||||||
|
|
@ -3893,9 +3893,10 @@ dict_tree_copy_rec_order_prefix(
|
||||||
dict_index_t* index;
|
dict_index_t* index;
|
||||||
ulint n;
|
ulint n;
|
||||||
|
|
||||||
|
UNIV_PREFETCH_R(rec);
|
||||||
index = dict_tree_find_index_low(tree, rec);
|
index = dict_tree_find_index_low(tree, rec);
|
||||||
|
|
||||||
if (tree->type & DICT_UNIVERSAL) {
|
if (UNIV_UNLIKELY(tree->type & DICT_UNIVERSAL)) {
|
||||||
ut_a(!index->table->comp);
|
ut_a(!index->table->comp);
|
||||||
n = rec_get_n_fields_old(rec);
|
n = rec_get_n_fields_old(rec);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -3947,7 +3948,7 @@ dict_index_calc_min_rec_len(
|
||||||
ulint sum = 0;
|
ulint sum = 0;
|
||||||
ulint i;
|
ulint i;
|
||||||
|
|
||||||
if (index->table->comp) {
|
if (UNIV_LIKELY(index->table->comp)) {
|
||||||
ulint nullable = 0;
|
ulint nullable = 0;
|
||||||
sum = REC_N_NEW_EXTRA_BYTES;
|
sum = REC_N_NEW_EXTRA_BYTES;
|
||||||
for (i = 0; i < dict_index_get_n_fields(index); i++) {
|
for (i = 0; i < dict_index_get_n_fields(index); i++) {
|
||||||
|
|
@ -4267,9 +4268,11 @@ dict_index_print_low(
|
||||||
|
|
||||||
putc('\n', stderr);
|
putc('\n', stderr);
|
||||||
|
|
||||||
/* btr_print_size(tree); */
|
#ifdef UNIV_BTR_PRINT
|
||||||
|
btr_print_size(tree);
|
||||||
|
|
||||||
/* btr_print_tree(tree, 7); */
|
btr_print_tree(tree, 7);
|
||||||
|
#endif /* UNIV_BTR_PRINT */
|
||||||
}
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue