博客园 - 心中无码uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=634342013-09-25T09:48:06Z心中无码https://www.cnblogs.com/nocode/feed.cnblogs.comhttps://www.cnblogs.com/nocode/p/3338287.htmlSysbench0.5初体验 - 心中无码最近工作中需要测试数据库的OLTP的性能,参考了下MariaDB的benchmark中的测试脚本,发现脚本中已经使用了Sysbench-0.5,可以在这里https://launchpad.net/sysbench拉下来trunk,这就是传说中的0.5版本。1. 编译安装 1 Shell>pwd 2 3 /home/nocode 4 5 Shell> bzr branch lp:~sysbench-developers/sysbench/0.5 sysbench 6 7 Shell> cd sysbench 8 9 Shell> ./autogen.sh10 11 Sh2013-09-25T02:51:00Z2013-09-25T02:51:00Z心中无码https://www.cnblogs.com/nocode/【摘要】最近工作中需要测试数据库的OLTP的性能,参考了下MariaDB的benchmark中的测试脚本,发现脚本中已经使用了Sysbench-0.5,可以在这里https://launchpad.net/sysbench拉下来trunk,这就是传说中的0.5版本。1. 编译安装 1 Shell>pwd 2 3 /home/nocode 4 5 Shell> bzr branch lp:~sysbench-developers/sysbench/0.5 sysbench 6 7 Shell> cd sysbench 8 9 Shell> ./autogen.sh10 11 Sh <a href="https://www.cnblogs.com/nocode/p/3338287.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2013/05/25/3098317.htmlMariaDB线程池源码分析 - 心中无码MariaDB线程池源码分析心中无码0前言 MySQL5.5的Enterprise版本以plugin的方式引入了thread pool,在并发请求数达到一定 数量的时候,性能相比社区版貌似有不少提高, 可以看下这个性能对比。在引入线程池之前,MySQL支持的线程处理方式(thread_handling参数控制)有no-threads和one-thread-per-connection两种方式,no-threads方式是指任一时刻最多只有一个连接可以连接到server,一般用于实验性质。 one-thread-per-connection是指针对每个连接创建一个线程来处理这个连接的所有请求,直到2013-05-24T23:57:00Z2013-05-24T23:57:00Z心中无码https://www.cnblogs.com/nocode/【摘要】MariaDB线程池源码分析心中无码0前言 MySQL5.5的Enterprise版本以plugin的方式引入了thread pool,在并发请求数达到一定 数量的时候,性能相比社区版貌似有不少提高, 可以看下这个性能对比。在引入线程池之前,MySQL支持的线程处理方式(thread_handling参数控制)有no-threads和one-thread-per-connection两种方式,no-threads方式是指任一时刻最多只有一个连接可以连接到server,一般用于实验性质。 one-thread-per-connection是指针对每个连接创建一个线程来处理这个连接的所有请求,直到 <a href="https://www.cnblogs.com/nocode/archive/2013/05/25/3098317.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2013/04/30/3052337.htmlMySQL源码学习——USE语句的秘密 - 心中无码MySQL源码学习——USE语句的秘密Louis Hust0Preface最近一个项目需要解析MySQL的通信协议,这时候便碰到了USE语句的解析,发现客户端 mysql发送到服务器端的USE语句对应的并不是SQLCOM_CHANGE_DB命令,而是COM_INIT_DB。 而且这两个命令的处理逻辑基本一致,都是调用mysql_change_db进行处理,那么什么时候 发送COM_INIT_DB,什么时候发送SQLCOM_CHANGE_DB命令呢?这便是本文需要解释的地方。0COM_INIT_DB 与 SQLCOM_CHANGE_DB首先解释下这两个命令,其实这两个命令不是在一个层次的,COM2013-04-30T11:45:00Z2013-04-30T11:45:00Z心中无码https://www.cnblogs.com/nocode/【摘要】MySQL源码学习——USE语句的秘密Louis Hust0Preface最近一个项目需要解析MySQL的通信协议,这时候便碰到了USE语句的解析,发现客户端 mysql发送到服务器端的USE语句对应的并不是SQLCOM_CHANGE_DB命令,而是COM_INIT_DB。 而且这两个命令的处理逻辑基本一致,都是调用mysql_change_db进行处理,那么什么时候 发送COM_INIT_DB,什么时候发送SQLCOM_CHANGE_DB命令呢?这便是本文需要解释的地方。0COM_INIT_DB 与 SQLCOM_CHANGE_DB首先解释下这两个命令,其实这两个命令不是在一个层次的,COM <a href="https://www.cnblogs.com/nocode/archive/2013/04/30/3052337.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2013/02/07/2909031.htmlMySQL Internals——IN,OR,BETWEEN哪个更快? - 心中无码MySQL Internals——IN,OR,BETWEEN哪个更快?Louis Hust0前言 微博上看到@金山 提到了一个MySQL中的一个性能问题,select id from table where id > 100 and id < 200 和 select id from table where id = 101 or id = 103 or id = 104 or id = 105 or id = ...哪个更快?这里的查询条件有三种:between,or 和 in。这里id列是索引列,如果不是的话,三个查询都是全表扫描,性能差距应该不大。1准备环境mysql>2013-02-07T14:46:00Z2013-02-07T14:46:00Z心中无码https://www.cnblogs.com/nocode/【摘要】MySQL Internals——IN,OR,BETWEEN哪个更快?Louis Hust0前言 微博上看到@金山 提到了一个MySQL中的一个性能问题,select id from table where id > 100 and id < 200 和 select id from table where id = 101 or id = 103 or id = 104 or id = 105 or id = ...哪个更快?这里的查询条件有三种:between,or 和 in。这里id列是索引列,如果不是的话,三个查询都是全表扫描,性能差距应该不大。1准备环境mysql> <a href="https://www.cnblogs.com/nocode/archive/2013/02/07/2909031.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2013/01/28/2880654.htmlMySQL Internals-Index Merge优化 - 心中无码MySQL Internals-Index Merge优化Louis Hust0前言之前搞错了,以为Index Merge是MySQL5.6的新特性,原来不是,发现5.5也有,看了下manual,发现5.0的manual就已经存在了, 可以说是一个历史悠久的优化手段了,好吧,不管怎么样,今天就拨开其神秘的面纱,看看其内部到底如何生成这种Index Merge的计划的。 这里只详细介绍Intersect操作,对于Union和Sort-Union的具体代码,还没开始研究。1Index Merge理论基础Index Merge——索引归并,即针对一张表,同时使用多个索引进行查询,然后将各个索引查出来2013-01-28T14:39:00Z2013-01-28T14:39:00Z心中无码https://www.cnblogs.com/nocode/【摘要】MySQL Internals-Index Merge优化Louis Hust0前言之前搞错了,以为Index Merge是MySQL5.6的新特性,原来不是,发现5.5也有,看了下manual,发现5.0的manual就已经存在了, 可以说是一个历史悠久的优化手段了,好吧,不管怎么样,今天就拨开其神秘的面纱,看看其内部到底如何生成这种Index Merge的计划的。 这里只详细介绍Intersect操作,对于Union和Sort-Union的具体代码,还没开始研究。1Index Merge理论基础Index Merge——索引归并,即针对一张表,同时使用多个索引进行查询,然后将各个索引查出来 <a href="https://www.cnblogs.com/nocode/archive/2013/01/28/2880654.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2013/01/27/2878921.htmlMySQL5.6 Internals--隐藏的索引列 - 心中无码MySQL5.6 Internals-隐藏的索引列Louis Hust0前言今天本来想跟踪MySQL5.6中的新特性Index Merge,结果在跟踪的过程中,发现了一个问题,即InnoDB的二级索引中 可能会包含主索引,当然这里的包含并不是说二级索引的row里面会有pk的记录,这一点是一直存在的,这里的包含 是指,二级索引也会包含主索引进行排序。1现场重现1.1初始化数据mysql>showcreatetableindex_merge\G***************************1.row***************************Table:index_merg2013-01-27T08:56:00Z2013-01-27T08:56:00Z心中无码https://www.cnblogs.com/nocode/【摘要】MySQL5.6 Internals-隐藏的索引列Louis Hust0前言今天本来想跟踪MySQL5.6中的新特性Index Merge,结果在跟踪的过程中,发现了一个问题,即InnoDB的二级索引中 可能会包含主索引,当然这里的包含并不是说二级索引的row里面会有pk的记录,这一点是一直存在的,这里的包含 是指,二级索引也会包含主索引进行排序。1现场重现1.1初始化数据mysql>showcreatetableindex_merge\G***************************1.row***************************Table:index_merg <a href="https://www.cnblogs.com/nocode/archive/2013/01/27/2878921.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2013/01/26/2878095.htmlMySQL Internals--How MySQL optimize single range - 心中无码MySQL Internals-How MySQL optimize single rangeLouis Hust0PerfaceWhen MySQL calculates the cost of QEP(Query execute plan), it will do a quick test for range scan with const values. But when the condition in where is complex, it should do the right thing for optimization, otherwise the exact plan ma2013-01-26T11:06:00Z2013-01-26T11:06:00Z心中无码https://www.cnblogs.com/nocode/【摘要】MySQL Internals-How MySQL optimize single rangeLouis Hust0PerfaceWhen MySQL calculates the cost of QEP(Query execute plan), it will do a quick test for range scan with const values. But when the condition in where is complex, it should do the right thing for optimization, otherwise the exact plan ma <a href="https://www.cnblogs.com/nocode/archive/2013/01/26/2878095.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2013/01/16/2862560.htmlUnderstanding SELECT_LEX & SELECT_LEX_UNIT - 心中无码Understanding SELECT_LEX & SELECT_LEX_UNITLouis Hust0PrefaceSELECT_LEX(st_select_lex)&SELECT_LEX_UNIT(st_select_lex_unit) are two important structs in Optimizer. They are used from yacc grammer to senmantics and to optimizer at last. So they are also the basic of understanding the Optimizer.2013-01-16T05:09:00Z2013-01-16T05:09:00Z心中无码https://www.cnblogs.com/nocode/【摘要】Understanding SELECT_LEX & SELECT_LEX_UNITLouis Hust0PrefaceSELECT_LEX(st_select_lex)&SELECT_LEX_UNIT(st_select_lex_unit) are two important structs in Optimizer. They are used from yacc grammer to senmantics and to optimizer at last. So they are also the basic of understanding the Optimizer. <a href="https://www.cnblogs.com/nocode/archive/2013/01/16/2862560.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2013/01/05/2846592.htmlDeep into MySQL QEP with optimizer_trace - 心中无码Deep into MySQL QEP with optimizer_traceLouis Hust0PrefaceMySQL5.6 add a new option to show QEP more deeply-optimizer_trace. This option is very different from EXPLAIN which just showes the table access method, index using, table join order and so on. But optimizer_trace output every steps of how th2013-01-05T11:32:00Z2013-01-05T11:32:00Z心中无码https://www.cnblogs.com/nocode/【摘要】Deep into MySQL QEP with optimizer_traceLouis Hust0PrefaceMySQL5.6 add a new option to show QEP more deeply-optimizer_trace. This option is very different from EXPLAIN which just showes the table access method, index using, table join order and so on. But optimizer_trace output every steps of how th <a href="https://www.cnblogs.com/nocode/archive/2013/01/05/2846592.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2012/12/29/2838561.htmlMySQL Optimizer Analysis——Join types - 心中无码MySQL Optimizer Analysis——Join typesLouis Hust0前言通过EXPLAIN查看执行计划,其输出中较为重要的列为type列,此列决定了操作此表的类型,在MySQL内部,此列对应了 enum join_type。这里分别针对Manual中列举出来的各种不同的type,进行实例显示,让大家更加明确的了解各个type的实际意义, 有利于加深大家对explain输出的理解。由于MySQL5.6对Optimizer的代码进行了重构,条理上更加清晰,故本实验的环境是:Serverversion:5.6.6-m9-debug-logSourcedistribution2012-12-29T03:25:00Z2012-12-29T03:25:00Z心中无码https://www.cnblogs.com/nocode/【摘要】MySQL Optimizer Analysis——Join typesLouis Hust0前言通过EXPLAIN查看执行计划,其输出中较为重要的列为type列,此列决定了操作此表的类型,在MySQL内部,此列对应了 enum join_type。这里分别针对Manual中列举出来的各种不同的type,进行实例显示,让大家更加明确的了解各个type的实际意义, 有利于加深大家对explain输出的理解。由于MySQL5.6对Optimizer的代码进行了重构,条理上更加清晰,故本实验的环境是:Serverversion:5.6.6-m9-debug-logSourcedistribution <a href="https://www.cnblogs.com/nocode/archive/2012/12/29/2838561.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2012/11/21/2780914.htmlHow to use NoSQL in MySQL - 心中无码How to use NoSQL in MySQL?Louis Hust1 IntroductionMySQL5.6 has already supported memcached, so we can say MySQL is a mixture of RDBMS and NoSQL. But there is few materials about how to install memcached in MySQL and how to use it, and that is the reason i write this article. In this article, i will 2012-11-21T08:19:00Z2012-11-21T08:19:00Z心中无码https://www.cnblogs.com/nocode/【摘要】How to use NoSQL in MySQL?Louis Hust1 IntroductionMySQL5.6 has already supported memcached, so we can say MySQL is a mixture of RDBMS and NoSQL. But there is few materials about how to install memcached in MySQL and how to use it, and that is the reason i write this article. In this article, i will <a href="https://www.cnblogs.com/nocode/archive/2012/11/21/2780914.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2012/07/21/2602379.html你真的了解如何登录MySQL么? - 心中无码昨天同事碰到一个问题,在MySQL上创建了一个用户,host设置为%,本地竟然无法登录。创建一个host为localhost的同名用户后,本地可以登录。感脚很怪异,下面我们重新分析产生这个问题的原因。1. 现场重现*root本地登录Shell>./mysql -urootWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 7Server version: 5.5.17-debug-log Source distributionCopyright (c) 2000, 20112012-07-21T07:59:00Z2012-07-21T07:59:00Z心中无码https://www.cnblogs.com/nocode/【摘要】昨天同事碰到一个问题,在MySQL上创建了一个用户,host设置为%,本地竟然无法登录。创建一个host为localhost的同名用户后,本地可以登录。感脚很怪异,下面我们重新分析产生这个问题的原因。1. 现场重现*root本地登录Shell>./mysql -urootWelcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 7Server version: 5.5.17-debug-log Source distributionCopyright (c) 2000, 2011 <a href="https://www.cnblogs.com/nocode/archive/2012/07/21/2602379.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2011/12/26/2302343.htmlCSDN密码库窥视各大数据库性能 - 心中无码很多同学一直抱怨手头木有一个真实的数据库,无法进行数据库性能试验,CSDN得知了同学们的苦恼,立刻开放了部分数据库,供同学们学习、参考,对CSDN这种大公无私、舍己为人的行为,有关部门对此进行了高度的赞扬,下面就带领同学们来进行一个小小的性能对比测试。 实验选择了三个数据库:Oracle11g、MySQL5.1以及DM7。Oracle作为商业数据库大哥大的代表,MySQL作为开源数据库的代表,DM7很多同学估计就不清楚了(达梦数据库),暂时作为国产数据库的代表吧(同学们轻拍^_^)。测试环境OSWINDOWS XP SP3CPUIntel i3 530 @2.93GHzMEMORY4GORAC2011-12-26T09:30:00Z2011-12-26T09:30:00Z心中无码https://www.cnblogs.com/nocode/【摘要】很多同学一直抱怨手头木有一个真实的数据库,无法进行数据库性能试验,CSDN得知了同学们的苦恼,立刻开放了部分数据库,供同学们学习、参考,对CSDN这种大公无私、舍己为人的行为,有关部门对此进行了高度的赞扬,下面就带领同学们来进行一个小小的性能对比测试。 实验选择了三个数据库:Oracle11g、MySQL5.1以及DM7。Oracle作为商业数据库大哥大的代表,MySQL作为开源数据库的代表,DM7很多同学估计就不清楚了(达梦数据库),暂时作为国产数据库的代表吧(同学们轻拍^_^)。测试环境OSWINDOWS XP SP3CPUIntel i3 530 @2.93GHzMEMORY4GORAC <a href="https://www.cnblogs.com/nocode/archive/2011/12/26/2302343.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2011/12/15/2289507.htmlMySQL源码学习——MDL字典锁 - 心中无码什么是MDL MDL,Meta Data lock,元数据锁,一般称为字典锁。字典锁与数据锁相对应。字典锁是为了保护数据对象被改变,一般是一些DDL会对字典对象改变,如两个TX,TX1先查询表,然后TX2试图DROP,字典锁就会lock住TX2,知道TX1结束(提交或回滚)。数据锁是保护表中的数据,如两个TX同时更新一行时,先得到row lock的TX会先执行,后者只能等待。MDL的设计目标字典锁在设计的时候是为了数据库对象的元数据。到达以下3个目的。1. 提供对并发访问内存中字典对象缓存(table definatin cache,TDC)的保护。这是系统的内部要求。2. 确保DML的并发性2011-12-15T14:34:00Z2011-12-15T14:34:00Z心中无码https://www.cnblogs.com/nocode/【摘要】什么是MDL MDL,Meta Data lock,元数据锁,一般称为字典锁。字典锁与数据锁相对应。字典锁是为了保护数据对象被改变,一般是一些DDL会对字典对象改变,如两个TX,TX1先查询表,然后TX2试图DROP,字典锁就会lock住TX2,知道TX1结束(提交或回滚)。数据锁是保护表中的数据,如两个TX同时更新一行时,先得到row lock的TX会先执行,后者只能等待。MDL的设计目标字典锁在设计的时候是为了数据库对象的元数据。到达以下3个目的。1. 提供对并发访问内存中字典对象缓存(table definatin cache,TDC)的保护。这是系统的内部要求。2. 确保DML的并发性 <a href="https://www.cnblogs.com/nocode/archive/2011/12/15/2289507.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2011/12/12/2285350.htmlMySQL源码学习——DBUG调试 - 心中无码一、前言 在规模稍微大点的项目中,为了方便快速找到bug的所在,我们往往需要在代码中加入一些调试用的代码,比如加入一些printf,打印出一些重点的信息;加入assert,进行断言判断。这些比较随意的调试代码会使整个系统显得比较凌乱。于是Fred Fish开发了一套用于嵌入代码中的库,开发人员只需要调用相应的函数即可加入调试信息。 对于MySQL这种多线程的程...2011-12-12T14:10:00Z2011-12-12T14:10:00Z心中无码https://www.cnblogs.com/nocode/【摘要】一、前言 在规模稍微大点的项目中,为了方便快速找到bug的所在,我们往往需要在代码中加入一些调试用的代码,比如加入一些printf,打印出一些重点的信息;加入assert,进行断言判断。这些比较随意的调试代码会使整个系统显得比较凌乱。于是Fred Fish开发了一套用于嵌入代码中的库,开发人员只需要调用相应的函数即可加入调试信息。 对于MySQL这种多线程的程... <a href="https://www.cnblogs.com/nocode/archive/2011/12/12/2285350.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2011/10/14/2212586.htmlMysql源码学习——没那么简单的Hash - 心中无码Hash链表的应用比较常见,其目的就是为了将不同的值映射到不同的位置,查找的时候直接找到相应的位置,而不需要传统的顺序遍历或是二分查找,从而达到减少查询时间的目的。常规的hash是预定义一定的桶...2011-10-14T13:08:00Z2011-10-14T13:08:00Z心中无码https://www.cnblogs.com/nocode/【摘要】Hash链表的应用比较常见,其目的就是为了将不同的值映射到不同的位置,查找的时候直接找到相应的位置,而不需要传统的顺序遍历或是二分查找,从而达到减少查询时间的目的。常规的hash是预定义一定的桶... <a href="https://www.cnblogs.com/nocode/archive/2011/10/14/2212586.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2011/09/23/2186718.htmlOracle的聚簇也Hold不住了 - 心中无码这两天在研究Oracle的Cluster,这里的Cluster不是聚簇索引的意思。Cluster是Oracle特有的一种数据存储方式,即把相关的数据存储在同一个数据块上,如果一组表有一些共同的列,则将这样的一些表存储在相同的数据块上,这样对于主外键这种连接操作,会起到减少I/O的作用。 Oracle支持两种方式的Cluster,即Index Cluster和Hash ...2011-09-23T13:47:00Z2011-09-23T13:47:00Z心中无码https://www.cnblogs.com/nocode/【摘要】这两天在研究Oracle的Cluster,这里的Cluster不是聚簇索引的意思。Cluster是Oracle特有的一种数据存储方式,即把相关的数据存储在同一个数据块上,如果一组表有一些共同的列,则将这样的一些表存储在相同的数据块上,这样对于主外键这种连接操作,会起到减少I/O的作用。 Oracle支持两种方式的Cluster,即Index Cluster和Hash ... <a href="https://www.cnblogs.com/nocode/archive/2011/09/23/2186718.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2011/08/30/2159987.htmlMysql源码学习——用户认证原理与实现 - 心中无码前几节跟踪了Connection Manager和Thread Manager,在连接的过程中,还有一个身份认证的过程,就是大家所熟悉的
验证用户名和密码的过程,我们平时做一个系统的时候,很多时候都会涉及到身份验证。今天我们就来看下Mysql是如何进
行验证的。(注意是登录,不是登陆^_^)2011-08-30T12:48:00Z2011-08-30T12:48:00Z心中无码https://www.cnblogs.com/nocode/【摘要】前几节跟踪了Connection Manager和Thread Manager,在连接的过程中,还有一个身份认证的过程,就是大家所熟悉的
验证用户名和密码的过程,我们平时做一个系统的时候,很多时候都会涉及到身份验证。今天我们就来看下Mysql是如何进
行验证的。(注意是登录,不是登陆^_^) <a href="https://www.cnblogs.com/nocode/archive/2011/08/30/2159987.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2011/08/27/2155529.htmlMysql源码学习——Thread Manager - 心中无码为了提高系统效率,减少频繁创建线程和中止线程的系统消耗,Mysql使用了线程缓冲区的概念,即如果
一个连接断开,则并不销毁承载其的线程,而是将此线程放入线程缓冲区,并处于挂起状态,当下一个新的Connection到来
时,首先去线程缓冲区去查找是否有空闲的线程,如果有,则使用之,如果没有则新建线程。本问主要介绍这个线程缓冲区,
首先介绍下基本的概念2011-08-27T07:18:00Z2011-08-27T07:18:00Z心中无码https://www.cnblogs.com/nocode/【摘要】为了提高系统效率,减少频繁创建线程和中止线程的系统消耗,Mysql使用了线程缓冲区的概念,即如果
一个连接断开,则并不销毁承载其的线程,而是将此线程放入线程缓冲区,并处于挂起状态,当下一个新的Connection到来
时,首先去线程缓冲区去查找是否有空闲的线程,如果有,则使用之,如果没有则新建线程。本问主要介绍这个线程缓冲区,
首先介绍下基本的概念 <a href="https://www.cnblogs.com/nocode/archive/2011/08/27/2155529.html" target="_blank">阅读全文</a>https://www.cnblogs.com/nocode/archive/2011/08/21/2147781.htmlMysql源码学习——Connection Manager - 心中无码1.连接的线程数 Mysql支持单线程和多线程两种连接线程数。如果是单线程,则在同一时刻,只能有一个connection连接到Mysql,其他的连接会被挂起。如果是多线程,则同一时刻可以支持多个connection同时连接到服务器。 可以通过设置服务器的启动参数来设定连接的线程数:mysqld.exe --thread-handling=no-threadsmysqld.exe --thread-handling=one-thread-per-connection 服务器如何通过参数来选择使用哪种方式的呢?且看服务器中的分支代码:#ifdef EMBEDDED_LIBRARY one_th..2011-08-21T05:15:00Z2011-08-21T05:15:00Z心中无码https://www.cnblogs.com/nocode/【摘要】1.连接的线程数 Mysql支持单线程和多线程两种连接线程数。如果是单线程,则在同一时刻,只能有一个connection连接到Mysql,其他的连接会被挂起。如果是多线程,则同一时刻可以支持多个connection同时连接到服务器。 可以通过设置服务器的启动参数来设定连接的线程数:mysqld.exe --thread-handling=no-threadsmysqld.exe --thread-handling=one-thread-per-connection 服务器如何通过参数来选择使用哪种方式的呢?且看服务器中的分支代码:#ifdef EMBEDDED_LIBRARY one_th.. <a href="https://www.cnblogs.com/nocode/archive/2011/08/21/2147781.html" target="_blank">阅读全文</a>