十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
MySQL中的performance_schema的过程是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
成都创新互联公司专注于企业全网营销推广、网站重做改版、兴国网站定制设计、自适应品牌网站建设、成都h5网站建设、商城开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为兴国等各大城市提供网站开发制作服务。
今天介绍 MYSQL 中的 performance_schema 的过程。
1 线程的连接,在MYSQL的某些监控中是至关重要的,如果某个开发在上线某个程序后,发现MYSQL无法登陆了,除了你要预留一个额外的端口给你上去处理这个事情,那第二个事情就是要赶紧得到你MYSQL的连接数,因为很可能是,烂SQL,造成的连接数已经耗尽。我们可以通过
select * from performance_schema.accounts;
来进行一个信息的查询,当前有多少连接,历史连接数,我们通过这个信息在zabbix做一个监控是很容易的事情,当然还有另外一个和技术无关的事情,就是账号的问题,卖个关子,再好的技术都不得不匹配一个良好的管理,什么管理??? 否则就算查到这个信息,你也不得而知是那个应用惹的祸。
select thread_id,event_id,end_event_id,event_name,timer_start/1000000000000 as timer_start_s,timer_end/1000000000000 as timer_end_s,(timer_wait/1000000000000) as timer_wait_s,work_estimated from events_stages_history limit 1;
通过上面的查询可以查看时间的历史记录以及相关时间的等待时间,监控某些关键指标可以发现某些问题。(具体哪些问题,需要自己去找到 event_name中你关注的)
上面的语句可以在进行修改,可以获得更准确的信息,如果在定时去做,是可以将古老的慢查询方式替换的。
select user,host,event_name,count_alloc,count_free,sum_number_of_bytes_alloc/1000/1000 as sum_number_of_MB_alloc,sum_number_of_bytes_free/1000/1000 as sum_number_of_bytes_free_MB,current_number_of_bytes_useD/1000/1000 as current_number_of_MB_USED from memory_summary_by_account_by_event_name where count_alloc <> 0 and USER = 'app_collection' ORDER BY current_number_of_bytes_used desc limit 10;
或者你目前系统中,数据库操作文件的等待时间
select event_name,(avg_timer_wait/1000000000000) as avg_timer_wait_s from file_summary_by_event_name where min_timer_wait <> 0 limit 20;
最后performance_schema中的表很多,越新版本的MYSQL 会在这里给我们更多的信息。
这里我们总结一下,这里的表的大致类型
Setup_table 配置表
current_events_table 记录当前线程发生了什么
history_table 发生事件的历史记录
summary_table 对各种事件的统计表
setup_intruments 为当前数据库是否开启了某项监控
setup_timers 监控的采样率
以上的内容让我想起,去年interview某个人问我的问题,问题是MYSQL 中有类似ORACLE AWR 报告之类的东西,当时告诉他的是不可以,没有,其实细想想,虽然没有现成的AWR,我们是不是可以通过某些脚本,或PYTHON程序自己搞出一个 MYSQL 的AWR ,现在想想,这并不是一个问题。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。