-
V S Murthy Sidagam authored
As the number of open tables is increased, table lookup (testing if a table is already open) and in particular the case when a table is not open, became increasingly more expensive. The problem was caused by the open table lookup mechanism, which was based on traversing a linked list comparing the file names. Fixed by storing a pointer to the MYISAM_SHARE on the designated handler share area, so it could skip traversing the linked list on open. And that there are additional changes for have_rtree, which are not related to the bug. Now with the patch we can see good performance improvement in SELECT on huge number of tables for bigger values for TABLE_OPEN_CACHE and TABLE_DEFINITION_CACHE.
V S Murthy Sidagam authoredAs the number of open tables is increased, table lookup (testing if a table is already open) and in particular the case when a table is not open, became increasingly more expensive. The problem was caused by the open table lookup mechanism, which was based on traversing a linked list comparing the file names. Fixed by storing a pointer to the MYISAM_SHARE on the designated handler share area, so it could skip traversing the linked list on open. And that there are additional changes for have_rtree, which are not related to the bug. Now with the patch we can see good performance improvement in SELECT on huge number of tables for bigger values for TABLE_OPEN_CACHE and TABLE_DEFINITION_CACHE.
Loading