MYSQL Handler Socket插件(一)原理

Ubuntu 16.04 手工部署 LAMP:Apache MySQL PHP 深度配置指南 LAMP 是 Linux、Apache、MySQL 和 PHP 构成的经典 Web 服务栈,其核心价值在于可控性、可调试性与底层兼容性。理解 Apache 的 MPM 模块机制、MySQL 的 auth_socket 认证原理及 PHP 的双模(CLI/Web)配置差异,是保障遗留系统稳定运行和故障快速定位的技术基础。尤其在 Ubuntu 16.04 等长期支持但已停止标准维护的环境中,手工分步安装能显式管理依赖、前置安全加固、精准控制路径与权限,避免 tasksel 或一键脚本带来的默认配置陷阱。本文聚焦 阅读详情

HandlerSocket的应用场景:

MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产品,比如Redis/MongoDB等。不可否认,在做一些简单查询(尤其是PK查询)的时候,很多NoSQL产品比MySQL要快很多,而且前台网站上的80%以上查询都是简洁的查询业务。

MySQL通过HandlerSocket插件提供了API访问接口,在我们的基准测试中,普通的R510服务器单实例Percona/XtraDB达到了72W+QPS(纯读),如果采用更强劲的CPU增加更多的网卡,理论上可以获得更高的性能。而同等条件下Memcached仅有40W+QPS(纯读),并且在R510上Memcached单实例已经无法提升性能,因为Memcached对内存的一把大锁限制了它的并发能力。

HandlerSocket原理:

MySQL的架构是“数据库管理”和“数据管理”分离,即MySQL Server+Storage Engine的模式。MySQL Server是直接与Client交互的一层,它负责管理连接线程,解析SQL生成执行计划,管理和实现视图、触发器、存储过程等这些与具体数据操作管理无关的事情,通过调用Handler API让存储引擎去操作具体的数据。Storage Engine通过继承实现Handler API的函数,负责直接与数据交互,数据存取实现(必须实现),事务实现(可选),索引实现(可选),数据缓存实现(可选)。

(图1-1 MySQL架构)

HandlerSocket是在MySQL的内部组件,以MySQL Daemon Plugin的形式提供类似NoSQL的网络服务,它并不直接处理数据,只是侦听配置好的某个端口方式,接收采用NoSQL/API的通讯协议,然后通过MySQL内部的Handler API来调用存储引擎(例如InnoDB)处理数据。理论上,HanderSocket可以处理各种MySQL存储引擎,但是用MyISAM时,会出现插入的数据查不出来,这个实际上是构造行时第一字节没有初始化为0xff,初始化以后就没有问题,MyISAM也一样可以支持,但是为了更好地利用内存,用HandlerSocket都会搭配InnoDB存储引擎一起使用。

图1-2描述HandlerSocket具体做了哪些事情:

(图1-2 HandlerSocket原理)

因为HandlerSocket是以MySQL Daemon Plugin形式存在,所以在应用中,可把MySQL当NoSQL使用。它最大的功能是实现了与存储引擎交互,比如InnoDB,而这不需要任何SQL方面的初始化开销。访问MySQL的TABLE时,当然也是需要open/close table的,但是它并不是每次都去open/close table,因为它会将以前访问过的table cache保存下来以重复使用,而opening/closing tables是最耗资源的,而且很容易引起互斥量的争夺,这样一来,对于提高性能非常有效。在流量变小时,HandlerSocket会close tables,所以它一般不会阻塞DDL。

HandlerSocket与MySQL+Memcached的区别在哪呢?对比图1-2和图1-3,可从中看出其不同点,图1-3展示了典型的MySQL+Memecached的应用架构。因为Memcached的get操作比MySQL的内存中或磁盘上的主键查询要快很多,所以Memcached用于缓存数据库记录。若是HandlerSocket的查询速度和相应时间能与Memcached媲美,我们就可以考虑替换Memcached缓存记录的架构层。

(图1-3 典型MySQL+Memcached架构)

【编者注】

为方便读者更加全面掌握HandlerSocket的知识点,我们分三篇文章介绍:HandlerSocket的原理、HandlerSocket的性能测试报告、HandlerSocket的优势和缺陷阐述,同时帮助读者朋友做到心中有数,什么业务场景适合使用HandlerSocket存取数据,如何让HandlerSocket的优势发挥到极致。

Ubuntu 20.04 LAMP环境搭建:Apache+PHP+MySQL协同原理与实操 LAMP 是 Linux、Apache、MySQL 和 PHP 四者构成的 Web 服务基础架构,其本质是一套依赖明确、协议清晰的进程协作链:Apache 作为 HTTP 请求入口,通过 libapache2-mod-php 模块将请求交由 PHP 解释执行,再由 PHP 通过 mysqli 或 PDO 扩展调用 MySQL 完成数据存取。该架构的技术价值在于稳定、可调试、易复现,特别适合本地开发、WordPress 部署及教学验证。在 Ubuntu 20.04 环境下,需重点关注模块加载(a2enmod) 阅读详情

相关推荐

Ubuntu 20.04 LAMP生产级部署:Apache+MySQL8+PHP7.4安全配置指南

LAMP(Linux-Apache-MySQL-PHP)是Web开发最经典的技术栈,其核心价值在于稳定、可运维与工程可控性。Apache作为模块化清晰的Web服务器,提供直观的虚拟主机与重写规则管理;MySQL 8.0默认启用caching_sha2_password认证插件和原子DDL,显著提升安全性与数据一致性;PHP 7.4在Ubuntu 20.04中通过libapache2-mod-php7.4深度集成,兼顾调试效率与运行性能。该技术组合广泛应用于WordPress、Laravel等PHP项目快速验

weixin_33850015的博客 420

HandlerSocket的原理

HandlerSocket的应用场景: MySQL自身的局限性,很多站点都采用了MySQL+Memcached的经典架构,甚至一些网站放弃MySQL而采用NoSQL产品,比如Redis/MongoDB等。不可否认,在做一些简单查询(尤其是PK查询)的时候,很多NoSQL产品比MySQL要快很多,而且前台网站上的80%以上查询都是简洁的查询业务。 MySQL通过HandlerSock...

yuanlanjun 282

Debian 10下LEMP部署WordPress的核心原理与避坑指南

LEMP(Linux+Nginx+MariaDB+PHP)是一种面向高并发、低资源场景的Web服务架构,其核心在于事件驱动模型、进程隔离机制与数据库安全默认策略。相比传统LAMP,Nginx的epoll机制显著降低内存开销,MariaDB在Debian 10中深度集成并启用严格SQL模式,PHP-FPM的ondemand进程管理可弹性应对WordPress的I/O密集型请求特征。该架构天然规避.htaccess滥用、MySQL远程root登录等常见风险点,特别适合轻量VPS与容器化环境。本文聚焦Debian

weixin_33716941的博客 449

【五】Socket函数详解

socket相关函数详解

AnChenliang_1002的博客 604

Ubuntu 12.04 + Drupal 7 部署实战:LAMP底层原理与运维精要

LAMP(Linux + Apache + MySQL + PHP)是Web开发最基础、最经典的开源技术栈,其各组件协同机制构成了动态网站运行的底层骨架。理解Apache的模块化加载、PHP的解释执行流程、MySQL的InnoDB存储引擎与查询优化,是排查500错误、白屏、数据库连接失败等共性问题的关键。在资源受限环境(如512MB内存虚拟机)中,这些技术细节更直接决定系统稳定性与安全水位——例如PHP memory_limit配置不当引发OOM,MySQL表碎片导致I/O飙升,.htaccess重写规则错

weixin_30298497的博客 394

Android仿QQ即时通讯系统课程设计:从Socket通信到数据库架构实战

即时通讯(IM)是移动开发中兼具技术深度与应用广度的经典场景,其核心涉及网络通信、数据存储与UI交互三大能力。本文从基础概念出发,剖析IM系统的底层原理:通过Socket长连接实现消息实时收发,借助心跳机制维持连接稳定,利用MySQL与SQLite分层管理全量与增量数据。技术价值在于,开发者无需依赖第三方SDK,即可自主搭建一套完整的通信闭环,深入理解消息状态流转与断线重连机制。典型应用场景包括课程设计、毕业设计以及Android网络编程初学者的实战练手。文章围绕仿QQ项目的整体设计、数据库建表、客户端MV

weixin_42591413的博客 289

句柄的概念

一个句柄就是一个文件、设备、 套接字 (socket)或管道的一个名字, 以便帮助记住正在处理的名字,并隐藏某些缓存等的复杂性。

qq_44184049的博客 531

基于反相器的超声波发生和气泡检测电路

本文主要介绍了关于超声波的两种电路——基于反相器的振荡电路和基于逻辑们的气泡检测电路

xehagy的博客 1954

[原创]HandlerSocket系列(二):架构、特点及其应用场景

上文介绍了为什么会产生HandlerSocket,是什么需求驱动这个产品产生的。本文主要从整体架构上做一些介绍,包括对它的一些主要优缺点和具体的应用场景。 一、HandlerSocket整体架构 HandlerSocket设计为MySQL的一个plugin,作为mysqld进程的daemon存在,与Client通过TCP/IP交互,进行CRUD相关的操作。基于此原因,不仅可以通过Han...

weixin_30369087的博客 193

AI图像识别在临电配电箱安全检测中的应用与实践

计算机视觉与AI图像识别技术正逐步改变传统工业检测方式。通过深度学习模型如YOLOv5和ResNet,系统能自动识别设备元件并分析其状态,大幅提升检测效率和准确性。这种技术特别适用于需要严格遵循行业标准的场景,如临电配电箱的安全检测。将《施工现场临时用电安全技术规范》等条文转化为可量化的算法,AI系统能自动检查PE线连接、漏保功能等关键项目。实际应用表明,此类解决方案可使电气事故率下降90%以上,同时检测耗时缩短80%,为工地安全提供了智能化保障。

weixin_29042035的博客 328

IEDA激活码失效?教你5分钟快速续期的方法

本文针对IEDA激活码失效问题,提供了一套从快速应急到深度排查的完整解决方案。文章不仅详解了5分钟快速续期与清理缓存等应急方法,更深入剖析了授权机制、离线激活流程,并指导如何构建可持续的授权管理策略,帮助开发者彻底解决激活困扰,确保开发环境稳定。

a0b1c2d3的专栏 273

SOCKET handle or FILE handle 原来是一回事

<br />HANDLE,是在Windows上开发的程序员都非常熟悉,绝大部分的API操作都与HANDLE有关(书上翻译为"句柄",而我喜欢直接称呼其英文名字),关于具体的原理,这里不多讲了。<br /> <br />SOCKET,做个socket开发的朋友都知道,在使用网络开发的时候需要创建的一个SOCKET 对象来进行访问,它在MSDN有如下解释:<br /><br /> <br />以前在做这方面的开发时,直接拿来使用,属于典型的拿来主义,但在最近的一个项目中涉及到网络开发,对方要求设计一个模块操作网

wzbhbb的专栏 4641

利用腾讯云轻量服务器快速搭建网站CDN

腾讯云的轻量最近在主机和站长中间可谓是占尽来风头,优秀的线路,低廉的价格使得越来越多的人开始使用腾讯云的轻量级服务器来部署应用。由于腾讯云轻量服务器的海外服务器电信走的是CN2GIA线路带宽30m挺适合做CDN的,我就记录一下如何利用腾讯云香港的轻量服务器搭建一个CDN。 购买服务器 首先选购服务器,最近腾讯云在做活动,力度很大国内备案用户可以选用国内的服务器最低128元/年,未备案的可以选用香港或者新加坡的服务器。 购买链接 服务器系统选Debian、Ubuntu、centos都可以 一键脚

demo_top的博客 2564

MYSQL Handler Socket插件(二)性能测试

HandlerSocket Oprofile测试报告 (MySQL通过SQL执行K/V查询的Oprofile信息) MySQL执行SQL语句,首先要经过SQL解析阶段,调用MYSQLparse() 和MYSQLlex() 进行语法和词法解析;然后进入查询优化阶段,调用make_join_statistics() 和JOIN::optimize() 获得统计信息和生成执行

很多时候,你缺少的不是知识而是热情 1826

WPS专业版自带字体

WPS专业版其中一个好处就是自带了部分有版权的字体,就算你安装了没买授权,他也会给你在系统里面安装上这些字体,至于没授权继续用合不合规我不知道。但是带来的实实在在的好处就是有些子他支持的全啊。 /usr/share/fonts/wps-office/FZWBK.TTF: 方正魏碑_GBK,FZWeiBei\-S03:style=Regular /usr/share/fonts/wps-office/FZFSK.TTF: 方正仿宋_GBK,FZFangSong\-Z02:style=Regular /us

chenqioulin的博客 5696

RK3588 部署 YOLO26 目标检测:PT → ONNX → RKNN 全流程

YOLO26n 在 RK3588 上 INT8 量化后 NPU 推理约 15ms,系统 FPS 约 55,可以覆盖边缘端实时检测需求。模型从 PT 到 RKNN 的转换要用opset=11避免算子兼容问题。先用 YOLO26n + 640 输入跑通全链路,确认推理结果正确后再做性能调优。

m0_64661770的博客 303

mysql handler socket_MySQL下的NoSQL解决方案HandlerSocket

目前使用MySQL的网站,多半同时使用Memcache作为键值缓存。虽然这样的架构极其流行,有众多成功的案例,但过于依赖Memcache,无形中让Memcache成为故障的根源:Memcache数据一致性的问题:当MySQL数据变化后,如果不能及时有效的清理掉过期的数据,就会造成数据不一致。这在强调即时性的Web2.0时代,不可取。Memcache崩溃后的雪崩效应:作为缓存的Memcache一旦崩...

weixin_39981624的博客 129

PCL 加权局部最优投影(WLOP)简化算法

WLOP算法是一种点云重采样方法,通过迭代优化实现点云均匀化和特征保留。算法包含数据项(加权平均位置保持几何特征)和正则化项(排斥邻近点实现均匀分布)两部分。代码实现基于PCL库,通过KD树加速邻域搜索,使用高斯权重函数计算点位置更新。参数包括输出点比例、邻域半径、正则化权重和迭代次数。该算法不依赖网格信息,适合处理大规模扫描数据的预处理优化。

点云侠的博客 628

Memcache + MySQL + HandlerSocket

1.LRU机制缓存淘汰算法: Least recently used(最近最少原则) 具体详见这里2.Memcache缓存MySQL原理和缓存过程通过Memcache提高网站访问速度和减少数据库压力,通过这篇文章了解Memcache和MySQL之间的交互流程关系3.lazy load机制对有缓存层的数据库进行增删改操作时,采取lazy load策略。 新增时只写入数据库,并不会马上更新Memca

xixihaha的博客 695

强化学习优化多目标冲突推理的决策过程设计

1. 背景介绍 强化学习(Reinforcement Learning,RL)作为机器学习的一个重要分支,近年来在计算机科学和人工智能领域取得了显著的进展。其核心思想是通过试错来学习最优策略,从而在复杂的环境中实现目标。然而,在多目标冲突推理(Multi-Objective Conflict Reasoning,MOCR)问题上,强化学习面临着诸多挑

AI天才研究院 1509

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Ubuntu 20.04 LEMP部署实战:Nginx+PHP7.4+MySQL8.0完整配置

LEMP(Linux+Nginx+MySQL+PHP)是现代Web服务的轻量级运行时环境,其核心在于事件驱动架构与FastCGI进程管理机制的协同。Nginx以异步非阻塞模型高效处理并发请求,PHP-FPM通过独立进程池实现资源隔离与弹性伸缩,MySQL 8.0则引入caching_sha2_password认证插件提升安全性。在Ubuntu 20.04这一LTS系统中,需特别应对systemd-resolved DNS劫持、PHP模块加载路径变更及socket权限匹配等底层约束。本文聚焦真实生产场景,覆盖

weixin_34396103的博客 417

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

MySQL SQL执行全链路解析:从Parser到Executor的完整生命周期

在数据库系统中,SQL语句的执行是一个从客户端请求到结果返回的复杂过程,其核心在于查询优化与执行引擎的高效协作。理解SQL执行原理,特别是解析器、优化器和执行器三大核心组件的工作机制,是进行数据库性能调优和问题诊断的基础。解析器负责将SQL文本转换为结构化的抽象语法树,优化器则基于统计信息和成本模型生成最优执行计划,而执行器通过调用存储引擎接口完成数据的实际存取。这一流程直接关系到索引设计、查询性能及系统资源利用效率。通过掌握执行计划分析工具如EXPLAIN,开发者可以精准定位慢查询瓶颈,优化索引策略,从而

weixin_33911824的博客 386

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

MySQL 入门

本文全面介绍了MySQL数据库及其相关技术,内容涵盖: 数据库基础概念:包括数据库系统组成、关系型与非关系型数据库对比、MySQL核心特点等; MySQL操作管理:详细讲解了安装配置、SQL语句分类、数据类型、索引原理等核心内容; 高级特性:深入分析事务、锁机制、存储引擎、主从复制等关键特性; 扩展架构:系统介绍了读写分离、集群部署、分库分表等企业级解决方案; 开发集成:提供了JDBC连接、MyCat中间件等实践指南。 文章采用结构化组织方式,从基础到高级层层递进,包含了大量实用性强的代码示例和配置模板

weixin_51689532的博客 1243

MySQL问答200

本文涵盖MySQL全栈面试核心内容,包括:基础概念(关系型数据库特性、体系结构);存储引擎对比(InnoDB/MyISAM);索引原B+树、聚簇索引)与优化策略;事务ACID与隔离级别实现;锁机制(行锁、间隙锁)与MVCC原理;日志系统(redo/undo/binlog);SQL优化与执行计划分析;高可用方案(主从复制、分库分表);InnoDB底层机制(Buffer Pool、Checkpoint);以及MySQL 8.0新特性。

weixin_72753562的博客 827

Ubuntu 20.04 手动部署 LAMP 栈:原理、排错与生产级配置

LAMP(Linux + Apache + MySQL + PHP)是 Web 服务最基础的运行栈,其本质是 HTTP 请求处理、动态脚本执行与关系型数据库交互的标准化协同模型。理解其组件间通信机制(如 Apache 模块加载、PHP-FPM 或嵌入式执行、MySQLi 连接认证)、权限模型(www-data 用户隔离)及字符集链路(utf8mb4 全栈一致),是排查 500 错误、中文乱码、连接拒绝等高频故障的前提。在 Ubuntu 20.04 这一 LTS 系统上手动分步部署,不仅能规避一键安装导致的版

djai0102的博客 427

HandlerSocket简介以及php使用handlersocket

HandlerSocket 作者:Eugene ,发布于2012-11-9   目录: HandlerSocket的原理 HandlerSocket的优势和缺陷阐述 HandlerSocket的性能测试 HandlerSocket的原理 HandlerSocket的应用场景: MySQL自身的局限性,很多站点都采用了MySQ

u011871037的专栏 824
上一篇: mysql timeout调研与实测
下一篇: MYSQL Handler Socket插件(二)性能测试
笑天居士
博客等级 码龄24年 292粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值