MySQL大并发量性能优化实战.pdf
Gdevops
全球敏捷运维峰会
MySQL大并发量性能优化实战
演讲人:张青林
G 全球敏捷运维峰会上海站
mysql_parse
mysql_execute_command
简
单
P
查 execute_sqlcom_select S
询 的
语 open_normal_and_derived_tables 影
句 响
的 open_table_get_mdl_lock
范
执
围
行 handle_select
过
程 thr_lock
engine operation
close_open_tables
G 全球敏捷运维峰会上海站
Agenda
metadata_locks_hash_instances 的作用& 原理& 实现
table_open_cache_instances 的作用& 原理& 实现
performance_schmea 的作用& 原理& 实现
INNODB MVCC 的实现
G 全球敏捷运维峰会上海站
MySQL metadata_locks_hash_instances
什么是MDL Lock ,其主要作用是什么?
MDL Lock (Metadata Lock),即Server 层的数据字典锁,是为了保护 DB,
table, trigger, procedure 等数据对象而设计的,先看一下一个bug#989:
G 全球敏捷运维峰会上海站
MDL Lock 的实现原理
mysql_execute_command THD -> MDL_context -> MDL_tickets -> MDL_lock
...
acquire_lock(...mdl_requests...) m_partitions.at(part_id)
try_acquire_lock_impl