dbproxy 简介

数据库中间件分类与核心组件解析 数据库中间件根据实现层级和代理方式,可分为两大类:DBProxy(服务端代理) 和 JDBCProxy(客户端驱动代理)。两者的核心区别在于流量处理的位置和对应用的侵入性。核心定位:作为独立的中间层服务,部署在应用服务器与数据库之间,代理所有数据库请求,对应用层透明(应用无需修改代码,仅需连接中间件地址)。技术特点:代表组件:核心定位:通过修改JDBC驱动或实现特定协议,将路由逻辑嵌入应用程序的数据库连接层,无需独立中间件服务。技术特点:代表组件:选型建议:DBProxy的负载均衡JDBCProxy的负载均 阅读详情

这里所提及的dbproxy,是PHP和Mysql服务器之间的一个联系桥梁... ...

正常情况下的PHP应用程序中(包括其它非PHP的数据库应用),,每个请求或者说进程/线程均直接与MySQL服务器对话直接查询,并维护这条连接直到程序或请求结束,但是在高并发或大量持久连接(应用程序为持久进程)时,对于MYSQL等各类数据库服务器来说负载相当重。

这里的dbproxy的想法就是:让PHP直接与dbproxy对话, 而dbproxy与MYSQL直接对话,起到一个中介代理作用。
PHP ---> dbproxy ---> mysql 

dbproxy本身是一个单进程轮循服务的守护程序,它维护着一条MYSQL连接(暂时只访问一个库),大量来自PHP的数据库查询请求均由dbproxy进行代理查询,所以看起来一般情况下用dbproxy的效率反而会比直接与MYSQL相连来得差。但dbproxy针对各类查询设计了一套缓冲系统,有效的降低了数据库的负荷,避免某些高并发的应用经常出现 too many connections 的错误,一个dbproxy可以方便的允许大量并发连接的起起落落而不影响到 MYSQL 服务器本身。
1> 对于SELECT缓冲策略: 针对完整的SQL语句求出 md5值,将查询结果句柄缓存,最多缓存 1000个, 超出后删除最早进来的,取缓存时对比时间戳记和md5值,缓冲有效时间可以自己设定。
2> 对于UPDATE/INSERT... 类的缓存策略:是将SQL语句放到一个队列中,等主进程比较闲的时候再把数据统一发向数据库,会造成写入延迟,对于不太重要的数据可以这么操作。

dbproxy作为一个中间件,需要常驻内存,如果开发一个dbproxy中间件,最好用C/C++语言来开发守护程序。由于PHP多数用于web请求(一个进程/线程一会儿就结束了),并没有大规模用于长驻进程,用PHP做长驻程序可能效果不好甚至可能有重大隐患。

思考(九十二):DBProxy实现多级存储和事务处理 加载时,可以不加载到 Redis (看作一种优化)。游戏逻辑不像静态网页应用,数据很快就会被业务逻辑修改,然后写 Redis 成热数据。 阅读详情

相关推荐

dbproxy]基于阿里cobar增强的opencloudb

OpenCloudb介绍 什么是OpenCloudb?简单的说,OpenCloudb就是: • 一个彻底开源的,面向企业应用开发的“大数据库集群” • 支持事务、ACID、可以替代Mysql的加强版数据库 • 一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群 • 一个融合内存缓存技术、Nosql技术、HDFS大数据的新型SQL Server • 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品 • 一个新颖的数据库中间件产品 OpenCloudb的目标是:低成本的将现有的单机数据库和应用平滑迁移到“云”端,解决数据存储和业务规模迅速增长情况下的数据瓶颈问题。 OpenCloudb的关键特性: • 支持Mysql集群,可以作为Proxy使用 • 自动故障切换,高可用性 • 支持全局表,数据自动分片到多个节点,用于高效表关联查询 • 支持独有的基于E-R 关系的分片策略,实现了高效的表关联查询 • 多平台支持,部署和实施简单 OpenCloudb的优势: • 基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能,以及众多成熟的使用案例使得OpenCloudb一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。 • 广泛吸取业界优秀的开源项目和创新思路,将其融入到OpenCloudb的基因中,使得OpenCloudb在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。 • OpenCloudb背后有一只强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了OpenCloudb的产品质量。 • OpenCloudb并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设。 OpenCloudb的长期路线规划: • 在支持Mysql的基础上,后端增加更多的开源数据库和商业数据库的支持,包括原生支持PosteSQL、FireBird等开源数据库,以及通过JDBC等方式间接支持其他非开源的数据库如Oracle、DB2、SQL Server等 • 实现更为智能的自我调节特性,如自动统计分析SQL,自动创建和调整索引,根据数据表的读写频率,自动优化缓存和备份策略等 • 实现更全面的监控管理功能 • 与HDFS集成,提供SQL命令,将数据库装入HDFS中并能够快速分析 • 集成优秀的开源报表工具,使之具备一定的数据分析的能力

dbproxy

转至元数据结尾 由邹宇创建, 最终由邓文通修改于四月 25, 2018 转至元数据起始 dbproxy使用说明 一、为什么要有dbproxy 实际项目中,读写分离,失败重连,负载均衡,连接池等功能往往写在应用中,不仅干扰了实际应用的代码,还使应用出错的机会大大增加,而SQL日志分析,连接池等功能在php上更是很难做或者根本做不了。在应用中为数据库开发的上述功能,重用性较低,换成另外的项目或开发环境基本上就不能使用或者需要修改原来运用的代码,使得应用代码耦合了数据库封...

19li 2565

RDMA网络通信技术、NCCL集合通讯(GPU)

NCCL 是 NVIDIA 专为 GPU 设计的高性能集合通信库,用于优化多 GPU、多节点间的集体操作(如 AllReduce、Broadcast、AllGather 等),是深度学习分布式训练的核心组件。RDMA 允许计算机直接访问远程内存,无需 CPU 干预,大幅降低了网络通信的延迟和 CPU 开销。常见的 RDMA 实现包括。是两项关键技术,用于优化节点间数据传输效率和大规模并行计算性能。在高性能计算(HPC)、人工智能训练和数据密集型场景中,

weixin_42795092的博客 2422

DBProxy 入门到精通系列(一):DBProxy概述

DBProxy概述 DBProxy是支持分库分表,读写分离的中间件,博客内容除了阅读github官方文档外,还会附加上本人个人测试的结果,但了解一个中间件,需要对这个中间件有一个基本的认识,方便控制。 当前的中间件其实很多,有mycat,sharding-jdbc,DRDBS,kingshard等,每个软体都各有其特点,但行业目前推荐的比较多的则为DBProxy.而从美团的研发人员对该组件的态...

weixin_30335353的博客 481

C#中使用OpenCV的常用函数

c# opencv 常见操作

大黄鸭在发光的专栏 1079

sap2000 api matlab,SAP2000_API入门指南.pdf

SAP2000_API入门指南北 京 金 土 木 软 件 技 术 有 限 公 司Beijing Civil King Software TechnologyCo., Ltd.SAP2000 API 入门指南余承飞 韦群跃 汤娣概述SAP2000 API 是从 SAP2000 V11 开始引进的,即应用软件编程接口。用户可以编写程序,通过API 随心所欲地调用 SAP2000...

weixin_42118423的博客 1941

DBProxy安装使用初探

DBProxy是由美团点评公司技术工程部DBA团队(北京)开发维护的一个基于MySQL协议的数据中间层。它在奇虎360公司开源的Atlas基础上,修改了部分bug,并且添加了很多特性,支持读写分离,从库负载均衡,IP过滤,分表,DBA可平滑上下线DB,自动摘除宕机的DB,监控信息完备,SQL过滤,从库流量配置。

sinat_36757755的博客 1261

TMS320F280049C 学习笔记21 交叉开关 Crossbar (X-BAR)

简单介绍了X-BAR。

whyorwhnt的专栏 2万+

DBProxy简介

###一、简介 DBProxy是由美团点评公司技术工程部DBA团队(北京)开发维护的一个基于MySQL协议的数据中间层。它在奇虎360公司开源的Atlas基础上,修改了部分bug,并且添加了很多特性。目前DBProxy在美团点评广泛应用,包括美团支付、酒店旅游、外卖、团购等产品线,公司内部对DBProxy的开发全面转到github上,开源和内部使用保持一致。目前只支持MySQL(Percona)5.5和5.6。 主要功能: 读写分离 从库负载均衡 IP过滤 分表 DBA可平滑上下线DB 自动

大强博客 6186

Mind+掌控板实战:5分钟搞定Easy IoT的MQTT通讯(附完整代码)

本文详细介绍了如何利用掌控板和Mind+图形化编程软件,快速实现基于Easy IoT平台的MQTT通讯。通过清晰的步骤讲解和完整的代码示例,指导用户完成从云端配置、Wi-Fi连接到MQTT消息发布与订阅的全过程,帮助初学者轻松构建物联网设备间的双向对话系统。

weixin_29300241的博客 446

RK3588 平台imx334 驱动调试记录

rk3588调试imx334

xiaoning132的专栏 1790

我的DBProxy

<br />1.为什么要使用DBProxy?<br />   SQLHelper在使用时要指定ConnectionString,如果每次在使用时都指定,将很麻烦;<br />   大部分情况下,一个程序中只连接一个数据库,ConnectionString是同一个,因此可以建立一个SQLHelper代理类,在这里指定数据库连接;<br />   程序中只需要有一个DBProxy对象,为提高性能,用Singleton实现;<br />2.代码<br />using System; using System.C

日月 的专栏 2615

YOLO26改进策略【YOLO和Mamba】| 替换骨干 Mamba-YOLO26-T !!! 最新的发文热点

模块是模型中的一个重要组成部分,其主要作用是在模型的初始阶段对输入图像进行处理,方便后续的特征提取和目标检测。以下是对。

Limiiiing的博客 900

DBProxy快速入门教程

DBProxy快速入门教程 目录 1. DBProxy简介 1 2. DBProxy主要功能 2 3. DBProxy安装 2 3.1. 安装依赖项 8 3.1.1. 安装wget工具 8 3.1.2. 安装git工具 8 3.1.3. 安装epel企业版Linux额外包 9 3.1.4. 安装Percona 5.5数据库 9 3.1.5. 安装MySQL 5.6数据库 10 3.1.6. 安装jemalloc内存分配器 15 3.1.7. 安装libevent 高性能事件通知库

大强博客 1795

多周期路径约束(set_multicycle_path )

1.由慢到快的多周期约束 如下图所示,发射时钟周期是接受时钟周期的4倍。默认情况下,按照1T原则来进行静态时序分析和布局布线的。即建立时间是在发射沿后的第一个捕获沿检查,而保持时间是同一时刻下源时钟和捕获时钟的触发边沿下检查的(建立时间检查边沿的前一个触发沿)。 但是这样导致的问题就是该路径过于苛刻,为了满足这条路径的要求,不得不放弃其他路径。或者根本没办法保证这个默认的约束。总之最终造成...

Arist. 5506

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

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

DBProxy 项目全解

转载自:https://github.com/Meituan-Dianping/DBProxy/blob/master/doc/USER_GUIDE.md#2 1 总体信息1.1 关于本手册1.2 DBProxy概述1.2.1 DBProxy简介1.2.2 DBProxy主要特性1.2.3 ...

weixin_34088583的博客 923

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

dbproxy mysql_DBProxy快速入门

1. DBProxy安装1.1 安装依赖项CentOSyum install -y Percona-Server-devel-55.x86_64 Percona-Server-client-55.x86_64 Percona-Server-shared-55 jemalloc jemalloc-devel libevent libevent-devel openssl openssl-devel ...

weixin_27310417的博客 393

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

dbproxy下载安装

介绍奇虎360公司开源的Atlas是优秀的数据库中间件,美团点评DBA团队针对公司内部需求,在其上做了很多改进工作,形成了新的高可靠、高可用企业级数据库中间件DBProxy,已在公司内部生产环境广泛使用,较为成熟、稳定。DBProxy的优点 支持多语言MySQL客户端读写分离负载均衡Slave故障感知与摘除(Master需要MHA等其他联动)后端连接池自定义SQL拦截与过滤流量分组与控制丰富的监控...

小伟的博客 1925

dbproxy mysql_DBProxy 入门到精通系列(二):DBProxy快速入门教程

这里主要用来了解有关DBProxy方面的部署及基本的配置,以及模拟架构1 DBProxy方面的安装部署1)基础环境的部署# yum install -y Percona-Server-devel-55.x86_64 Percona-Server-client-55.x86_64 Percona-Server-shared-55 jemalloc jemalloc-devel libevent \...

weixin_32060429的博客 533

dbproxy分表

1.分表的配置功能概述:目前DBProxy线上使用的版本支持分表功能,分表策略目前为:hash。分表的配置可以在配置文件中进行配置,但是在0.2版本及其后的版本支持在admin端口对分表进行动态的配置。使用方法:配置文件中配置格式如下:tables=dbname.tablename.shardcolname.shardnum[,dbname.tablename.shardcolname.shard...

小伟的博客 2223

美团的DBProxy实践

本文整理自美团技术沙龙第10期:数据库技术架构与实践。 美团技术沙龙由美团技术团队主办,每月一期,每期沙龙邀请美团及其它互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域。 本次沙龙主要围绕数据库相关的主题,内容包括美团数据库自动化运维系统构建、点评侧MySQL自动化服务平台RDS、美团数据库中间件、和小米高级DBA带来的Redis Cluster的大规模运维实践。 平仲,美团高级DBA,现负责美团数据库中间件DBProxy的开发;主要工作经历从事于数据库内核及中间件开发。 这次分享..

一个有情怀的程序猿博客 831

DBProxy代码浅析

DBProxy代码浅析DBProxy代码浅析你理想中的数据库Proxy是什么样子的?怎样通过DBProxy插入和查找一条数据线程池shardingQueryTransactionDBDeployer使用中的建议 DBProxy代码浅析 你理想中的数据库Proxy是什么样子的? 程序员都希望数据库是能够无限存储数据的,但是单个DB Instance明显是无法做到的,所以分库分表就是解决海量数据存储的...

yes1983的专栏 1062

用C语言撸了个DBProxy

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34051201的博客 225

dbproxy思想

dbproxy思想   这里所提及的dbproxy,是PHP和Mysql服务器之间的一个联系桥梁... ... 正常情况下的PHP应用程序中(包括其它非PHP的数据库应用),,每个请求或者说进程/线程均直接与MySQL服务器对话直接查询,并维护这条连接直到程序或请求

shupan001的专栏 6725
上一篇: 标志枚举
下一篇: linux 下(Daemon)守护进程
goodspringin
博客等级 码龄14年 3粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值