Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.1(EOL)
-
None
Description
Data comes from Sandy Bridge system running sysbench OLTP RO in 1 thread against 1 table.
Call graphs:
- 0.51% mysqld mysqld
|
- alloc_root
|
+ 5.11% String_list::append_str(st_mem_root*, char const*)
|
+ 5.07% JOIN::save_explain_data_intern(Explain_query*, bool, bool, bool, char const*)
|
+ 4.92% MYSQLparse(THD*)
|
+ 4.91% get_best_combination(JOIN*)
|
+ 4.70% strmake_root
|
+ 3.33% create_ref_for_key(JOIN*, st_join_table*, keyuse_t*, bool, unsigned long long)
|
+ 3.18% execute_sqlcom_select(THD*, TABLE_LIST*)
|
+ 3.15% make_join_statistics(JOIN*, List<TABLE_LIST>&, st_dynamic_array*)
|
+ 2.86% alloc_query(THD*, char const*, unsigned int)
|
+ 2.41% Explain_query::Explain_query(THD*, st_mem_root*)
|
+ 2.38% create_explain_query(LEX*, st_mem_root*)
|
+ 2.36% memdup_root
|
+ 2.26% SQL_SELECT::test_quick_select(THD*, Bitmap<64u>, unsigned long long, unsigned long long, bool, bool, bool)
|
+ 2.25% parse_sql(THD*, Parser_state*, Object_creation_ctx*, bool)
|
+ 2.09% get_lock_data(THD*, TABLE**, unsigned int, unsigned int)
|
+ 1.94% JOIN::optimize()
|
+ 1.91% dispatch_command(enum_server_command, THD*, char*, unsigned int)
|
+ 1.74% Item_equal::add_const(Item*, Item*)
|
+ 1.73% JOIN::alloc_func_list()
|
+ 1.60% make_select(TABLE*, unsigned long long, unsigned long long, Item*, bool, int*)
|
+ 1.60% open_and_lock_tables(THD*, DDL_options_st const&, TABLE_LIST*, bool, unsigned int, Prelocking_strategy*)
|
+ 1.55% get_key_scans_params(PARAM*, SEL_TREE*, bool, bool, double)
|
+ 1.52% update_ref_and_keys(THD*, st_dynamic_array*, st_join_table*, unsigned int, Item*, unsigned long long, st_select_lex*, st_sargable_param**) [clone .isra.253]
|
+ 1.40% Explain_basic_join::add_table(Explain_table_access*, Explain_query*)
|
+ 1.40% st_select_lex::add_joined_table(TABLE_LIST*)
|
+ 1.39% mysql_select(THD*, Item***, TABLE_LIST*, unsigned int, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_
|
+ 1.37% Item_equal::Item_equal(Item*, Item*, bool)
|
+ 1.30% lex_one_token(YYSTYPE*, THD*)
|
+ 1.29% build_equal_items(JOIN*, Item*, COND_EQUAL*, List<TABLE_LIST>*, bool, COND_EQUAL**, bool) [clone .constprop.262]
|
+ 1.26% JOIN::prepare(Item***, TABLE_LIST*, unsigned int, Item*, unsigned int, st_order*, bool, st_order*, Item*, st_order*, st_select_lex*, st_select_lex_unit*)
|
+ 1.21% get_mm_leaf(RANGE_OPT_PARAM*, Item*, Field*, st_key_part*, Item_func::Functype, Item*)
|
+ 1.21% check_simple_equality(Item*, Item*, Item*, COND_EQUAL*)
|
+ 1.20% lock_tables(THD*, TABLE_LIST*, unsigned int, unsigned int)
|
+ 1.16% Lex_input_stream::init(THD*, char*, unsigned int)
|
+ 1.16% st_select_lex::add_table_to_list(THD*, Table_ident*, st_mysql_lex_string*, unsigned long, thr_lock_type, enum_mdl_type, List<Index_hint>*, List<String>*, st_mysql_lex_string*)
|
+ 1.11% Explain_index_use::set_pseudo_key(st_mem_root*, char const*)
|
+ 1.07% st_select_lex::save_leaf_tables(THD*)
|
+ 1.06% st_select_lex::setup_ref_array(THD*, unsigned int)
|
+ 1.05% multi_alloc_root
|
+ 0.97% cmp_item::get_comparator(Item_result, Item*, charset_info_st const*)
|
+ 0.96% QUICK_RANGE_SELECT::QUICK_RANGE_SELECT(THD*, TABLE*, unsigned int, bool, st_mem_root*, bool*)
|
+ 0.92% Eq_creator::create(Item*, Item*) const
|
+ 0.87% append_possible_keys(st_mem_root*, String_list&, TABLE*, Bitmap<64u>)
|
+ 0.78% make_leaves_list(List<TABLE_LIST>&, TABLE_LIST*, bool, TABLE_LIST*)
|
+ 0.77% create_sort_index(THD*, JOIN*, st_order*, unsigned long long, unsigned long long, bool)
|
+ 0.76% st_select_lex::add_item_to_list(THD*, Item*)
|
+ 0.68% st_select_lex::init_query()
|
It spends ~30% of time for function call convention:
│ void *alloc_root(MEM_ROOT *mem_root, size_t length)
|
│ {
|
5.94 │ push %rbp
|
12.94 │ mov %rsp,%rbp
|
2.61 │ push %r14
|
11.93 │ push %r13
|
2.17 │ mov %rdi,%r13
|
0.82 │ push %r12
|
Check if it can be inlined.