[MDEV-7954] my_strcasecmp_utf8() takes 0.19% in OLTP RO Created: 2015-04-09  Updated: 2016-02-16

Status: Open
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.1
Fix Version/s: 10.2

Type: Bug Priority: Minor
Reporter: Sergey Vojtovich Assignee: Alexander Barkov
Resolution: Unresolved Votes: 0
Labels: None

Epic Link: Performance: micro optimizations

 Description   

Call graphs:

-   0.19%  mysqld  mysqld
   - my_strcasecmp_utf8
      + 50.79% ACL_internal_schema_registry::lookup(char const*)
      + 25.44% find_field_in_table(THD*, TABLE*, char const*, unsigned int, bool, unsigned int*)
      + 14.92% get_cached_schema_access(st_grant_internal_info*, char const*)
      + 5.82% find_field_in_table_ref(THD*, TABLE_LIST*, char const*, unsigned int, char const*, char const*, char const*, Item**, bool, bool, unsigned int*, bool, TABLE_LIST**)
      + 2.13% find_order_in_list(THD*, Item**, TABLE_LIST*, st_order*, List<Item>&, List<Item>&, bool)
      + 0.90% find_item_in_list(Item*, List<Item>&, unsigned int*, find_item_error_report_type, enum_resolution_type*)

ACL_internal_schema_registry::lookup() does linear search.
find_field_in_table() most probably does linear search.



 Comments   
Comment by Sergey Vojtovich [ 2015-05-26 ]

my_strcasecmp_utf8() is called 6x per most OLTP RO queries:
my_strcasecmp(system_charset_info, "information_schema", db);
my_strcasecmp(system_charset_info, "performance_schema", db);
my_strcasecmp(system_charset_info, field_in_table, requested_field1);
my_strcasecmp(system_charset_info, field_in_table, requested_field1);
my_strcasecmp(system_charset_info, field_in_table, requested_field1);
my_strcasecmp(system_charset_info, field_in_table, requested_field2);

Generated at Thu Feb 08 07:23:33 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.