提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:莫成敏|2019-10-14 13:36:07.257|阅读 592 次
概述:Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。本文主要介绍MySQL 8性能架构如何帮助诊断查询死锁。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
MySQL 5.5增加了performance_schema和information_schema数据库。正如前面文章内容,information_schema中的表包含有关表、插件、分区、进程列表、状态和全局变量的统计信息。顾名思义,Performance_schema的表可用于改善MySQL实例的性能。如何做到这一点将成为今天文章的主题。就像上次一样,我们将使用Navicat Premium演示各种查询。
简要概述
性能模式是一种用于在低级别监视MySQL服务器执行的工具。性能架构的存储引擎共享了“performance_schema”名称,以便于与其他存储引擎区分开。拥有自己的引擎使我们能够访问有关服务器执行的信息,同时对服务器性能的影响最小。此外,它使用视图或临时表,以最大程度地减少持久性磁盘存储。最后,内存分配全部在服务器启动时完成,因此没有进一步的内存重新分配或大小调整,这极大地简化了性能。
从MySQL 5.6.6起默认启用性能模式。在该版本之前,默认情况下处于禁用状态。您可以使用以下语句验证其状态:
如果需要,可以始终通过使用——performance-schema = ON标志启动服务器来显式启用它。
现在,我们来看看Performance_schema的一些实际应用。
互斥锁和线程速成班
互斥锁是代码中使用的一种同步机制,用于强制在给定时间只有一个线程可以访问某些公共资源。据说该资源已由互斥锁“保护”。“Mutex”一词是“互斥变量”的非正式缩写,它本身是“互斥”的缩写。在MySQL中,它是InnoDB用于表示和强制对内部内存数据结构进行互斥锁的低级对象。运作方式如下:
一旦获取了锁,就可以防止任何其他进程,线程等获取相同的锁。在InnoDB中,执行的多个线程访问共享的数据结构。InnoDB将这些访问与自己的互斥锁和读/写锁实现同步。当服务器中执行的两个线程(例如,同时执行查询的两个用户会话)需要访问相同的资源(例如文件、缓冲区或某些数据)时,这两个线程将相互竞争,因此获得互斥锁的第一个查询将导致另一个查询等待,直到第一个查询完成并解锁互斥锁。如果第一个线程需要很长时间才能完成,则它可能会阻止其他进程。
一些有用的查询
所有互斥锁都在“性能模式”的Mutex_instances表中列出,这对于调查性能瓶颈非常有帮助。Mutex_instances.LOCKED_BY_THREAD_ID和rwlock_instances.WRITE_LOCKED_BY_THREAD_ID列对于调查性能瓶颈或死锁非常重要。使用方法如下:
假设线程1处于等待互斥的状态。
您可以确定线程正在等待什么:
如果查询结果标识线程正在等待互斥锁A,可在events_waits_current.OBJECT_INSTANCE_BEGIN中找到。
您可以确定哪个线程持有互斥锁A:
假设查询结果表明它是持有互斥锁A的线程2,如在Mutex_instances.LOCKED_BY_THREAD_ID中找到的那样。
您可以使用此查询查看线程2在做什么:
结论
在今天的文章中,我们学习了如何使用性能模式来诊断MySQL 8中的瓶颈和/或死锁。一种更简单的方法是使用Navicat Monitor。它具有一个查询分析器,该分析器显示所有正在执行的查询的摘要信息,并让您轻松检测死锁,例如当两个或多个查询永久相互阻塞时。
相关内容推荐:
想要购买该产品正版授权,或了解更多产品信息请点击
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
本文探讨 SQL Server 中 NULL 和空值之间的区别,并讨论如何有效地处理它们。
Unity 是一款功能极其丰富的游戏引擎,允许开发人员将各种媒体集成到他们的项目中。但是,它缺少最令人兴奋的功能之一 - 将 Web 内容(例如 HTML、CSS 和 JavaScript)直接渲染到 3D 场景中的纹理上的能力。在本文中,我们将介绍如何使用 DotNetBrowser 在 Unity3D 中将 Web 内容渲染为纹理。
DevExpress v24.2帮助文档正式发布上线了,请按版本按需下载~
本教程将向您展示如何用MyEclipse构建一个Web项目,欢迎下载最新版IDE体验!
Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
Navicat Monitor安全、简单而且无代理的远程服务器监控工具。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢