应元同学说要系统介绍一下THD类。我表示这个类太大,如果只是将字段意义依次列出意义不大,最好是碰到问题将相关的字段再说明,能关联更多信息。最近的一个patch中刚好碰到user_connect(好吧,是误用), 就介绍一下。
1、 字段说明
THD::user_connect字段是USER_CONN类型,声明在sql/structs.h. 其作用是记录当前连接用户的信息。结构如下:
typedef struct user_conn {
char *user;
char *host;
ulonglong reset_utime;
uint connections;
uint conn_per_hour, updates, questions;
USER_RESOURCES user_resources;
} USER_CONN;
可以看到,其中保存了用户名、客户端host信息,还有本用户的更新数、连接数等。
与之配套的,是一个hash结构hash_user_connections,hash_key中包含user和host。因此相同user &host的连接共享同一个USER_CONN.
2、数据源
conn_per_hour, updates, questions是当前连接对应的用户的实时统计信息。user_resources为元数据,来源于表mysql.user.
如:在localhost用root账户登录,update mysql.user set max_updates =2 where user=’root’; flush privileges; (必须flush后才生效)。则此账号最多只能执行2个更新操作(不局限于update)。
3、相关问题
a) hash_user_connections为内存结构,因此统计信息重启后并不保存;
b) 如果达到某个统计值达到上限,比如更新数,如何清空?
实际上并没有提供单独清空某个统计值的接口。但在执行 flush privileges和flush user_resources时,会将所有的统计值清空。对应被调用的函数为 reset_mqh (sql/sql_connect.cc).
/* for FLUSH PRIVILEGES and FLUSH USER_RESOURCES */
for (uint idx=0;idx < hash_user_connections.records; idx++)
{
USER_CONN *uc=(struct user_conn *) hash_element(&hash_user_connections,
idx);
if (get_them)
get_mqh(uc->user,uc->host,uc);
uc->questions=0;
uc->updates=0;
uc->conn_per_hour=0;
}
c) 是否所有的连接都会设置user_connect?
实际上,由于mysql.user里面的最后四个字段往往是被设置为默认的0。是否设置user_connect就取决于配置参数max_user_connections。 若为0,则该server的所有连接,都不设置user_connect.。估计是MySQL考虑到所有这些值都为0,不需要记录统计信息。实现策略的代码为
if ((ur.questions || ur.updates || ur.conn_per_hour || ur.user_conn ||
max_user_connections) &&
get_or_create_user_conn(thd,
(opt_old_style_user_limits ? thd->main_security_ctx.user :
thd->main_security_ctx.priv_user),
(opt_old_style_user_limits ? thd->main_security_ctx.host_or_ip :
thd->main_security_ctx.priv_host),
&ur))
{
/* The error is set by get_or_create_user_conn(). */
DBUG_RETURN(1);
}
可以看到,如果前面列出的所有值都为0,则不执行函数get_or_create_user_conn。
thd->ser_connect实例在此函数中创建。
分享到:
相关推荐
标题中的"FFT-Matlab.rar_FFT matlab THD_THD计算_matlab计算THD_thd计算matlab_波形THD"表明这是一个关于在MATLAB环境下使用快速傅里叶变换(FFT)进行总谐波失真(THD)计算的教程资源。这个压缩包包含一个名为"FFT-...
THD(Total Harmonic Distortion,总谐波失真)是衡量信号质量的重要指标,尤其在音频、电力系统和通信领域。它表示了信号中谐波分量与基波分量的比例,数值越小,表明信号失真越小,质量越高。在MATLAB中计算THD,...
基于pscad的求取三相电压不平衡度的仿真模型,倾情奉献。
标题中的“3-THD reduction_harmonics_filter_”暗示了本次讨论的主题是关于降低总谐波失真(THD)以及与之相关的谐波滤波技术。THD是衡量非线性负载中电流或电压波形畸变程度的重要指标,通常在电力系统、电子设备...
"谐波检测模块.zip_labview_thd_thd谐波检测_基波幅值_谐波分析" 这个标题表明这是一个与LabVIEW相关的项目,它包含一个谐波检测模块,用于分析输入信号中的谐波成分。THD(总谐波失真)是谐波分析中的一个重要指标...
本文将以“Current_zhihuan.zip_current THD_scenem63_单相逆变器_负载扰动 仿真_逆变 双闭环”为研究对象,探讨单相逆变器的THD(总谐波失真)控制、双闭环策略以及负载扰动应对方法。 首先,THD是衡量逆变器输出...
在标题"thd.rar_finallyqtt_thd_进程与线程"中,"thd"可能指的是线程(Thread)的缩写,而"finallyqtt"可能是某个项目或工具的标识。本文将深入探讨进程与线程的基础知识,以及如何在Matlab环境中应用Wiener滤波器和...
THD是指非线性负载引入的谐波电流与基波电流之比的平方根,通常以百分比表示。在理想情况下,交流电源波形应该是纯正弦波,但实际应用中,由于各种非线性设备的存在,如开关电源、UPS、电动车充电器等,会导致电流或...
标题中的“Thd.rar_byszn_course1n9_thd_按钮控件”可能是指一个关于编程课程的压缩包文件,由用户“byszn”创建,可能是课程编号为“course1n9”的一部分,主要讲解了“thd”(可能是线程或特定技术的缩写)以及...
《Linux线程池实现与套接字编程:深入解析thd_pool_v1.01》 在计算机系统中,线程池是一种管理线程资源的有效方式,它通过预先创建一组可重用线程来减少线程创建和销毁的开销。在标题为“thd_pool_v1.01.tar.gz_...
SVPWM的实现,调试通过.对输入波形的跟踪非常精确,THD小于0.2 .本来作为APF中替代滞环比较用的.
标题中的"ADCdongtai.rar_ADC信噪比测量_FFT THD_MATLAB ADC SFDR_discoverycrz_总谐波"表明这是一个关于模拟数字转换器(ADC)性能测量的MATLAB程序,主要涉及信噪比(SNR),信纳比(SINAD),无杂散动态范围(SFDR)和总...
标题中的"thd.rar_noddedxco_was1m6_系统/网络安全"暗示这是一个与系统安全相关的项目,其中可能包含了一些防止或检测恶意代码的技术。"noddedxco"和"was1m6"可能是特定的代码名称或版本标识,它们在网络安全领域...
"thd_pool_v1.02.tar.bz2.zip_linux_linux线程池_whale1ce_线程池"这个压缩包包含了一个由用户whale1ce编写的线程池实现,版本为v1.02。 线程池的基本思想是预先创建一组线程,而不是每当需要执行任务时就创建一个...
This is matlab simulink svpwm model just copy and paste it in work and simulate.this is powerful modulation technique to reduce harmonics.the THD compared to other modulation techniques is also low ....
由ADC的数字输出计算SFDR,THD,可以计算ENOB,并找出各次谐波
标题 "5_matalb_thd_" 暗示我们正在探讨使用 MATLAB 计算总谐波畸变率(THD)的主题,特别是在分布式静态补偿器(DSTATCOM)的应用上下文中。DSTATCOM 是一种电力电子设备,用于改善电网质量,特别是通过减少谐波...
标题中的“FW__THD_驱动”指的是一个特定的键盘驱动程序,可能是一个专为山寨笔记本设计的硬件驱动。在计算机领域,驱动程序是操作系统与硬件设备之间沟通的桥梁,它使得操作系统能够识别并控制硬件设备,发挥其应有...
- `jisuan_THD_example.m`可能是示例代码或测试函数,用于演示如何使用`jisuan_THD.m`函数,它可能包含一个模拟信号或者实际测量数据的实例,以便用户了解如何运行和验证谐波计算的正确性。 在MATLAB中进行谐波...
标题中的"ZSI_without_filter.zip_thd_zsi"暗示了我们正在讨论的是一种不带滤波器的阻抗源逆变器(ZSI)系统,其中THD代表总谐波失真(Total Harmonic Distortion),ZSI是阻抗源逆变器(Impedance Source Inverter...