MariaDB中的thread pool详细介绍和使用方法
Thread pool是什么
MySQL是每个连接上来都要创建一个线程来执行语句。这样每一个新的连接进来即会创建一个新的线程,这种动作对MySQL本身压力比较大。Threadpool是提供一种线程代理的模型执行每个连接的语句。而MySQL内部维护一个可能接受的线程总数,减少线程太多在CPU切换等方面的压力。
使用Threadpool的好处
1.使用线程代理的模型在连接数已知可控的情况下,提前创建好过线程并利用操作系统的threadpool技术维护,能减少很多开销。
2.尽可能的使用操作系统的线程方面的管理,把线程管理开销降到最低。 3. 利用
thread_pool_max_threads控制资源使用
什么情况下Thread Pool作用比较小:
1.并发太高及有长的语句操作。 如:内部threadpool的总数为:10个,外面并发来了1000个请求,现在都来争用这10个内部线程,这个开销也比较重。同样道理加大threadpool后,innodb内部的并发也会受到限制。
2.突发的大量连接。这个情况下threadpool还有一定的作用,但是效果不明显了。如果为了防止大量的连接进来。可以考虑增加thread_pool_min_threads及thread_pool_idle_timeout的值,让平时也维护一个大的threadpool
3.高并发的环境,有可能简单的查询也会变慢。虽然select 1;这样的查询很简单应该会很快完成。但在threadpool的下面也需要排队等待从theadpool得到可用的线程才能执行。
使用方法:
目前支持threadpool的有MariaDB, Percona, 官方MySQL的一个收费功能。配置启用。
在my.cnf
[mysqld]
#thread pool
thread_handling=pool-of-threads
相关推荐
-
mariadb 在低配 VPS 上崩溃问题处理方案
引言 最近博客又抽风了,打开主页后提示 Error Establishing a Database Connection .仔细想想,应该就是数据库服务器 mariadb 挂了:以前也遇到过类似的问题.经过分析日志,并结合网上的资料最终解决了问题. 日志 以下是 mariadb 服务器挂掉时的比较关键的日志信息,从下面的日志信息中,我们可以很容易地看出由于内存不足,从而导致数据库服务器启动时崩溃. InnoDB: Starting crash recovery. InnoDB: Reading
-
浅谈MySQL和mariadb区别
MariaDB是MySQL源代码的一个分支,在意识到Oracle会对MySQL许可做什么后分离了出来(MySQL先后被Sun.Oracle收购).除了作为一个Mysql的"向下替代品",MariaDB包括的一些新特性使它优于MySQL. 这两个数据库究竟有什么本质的区别,我看mariadb文件夹BIN中还是mysql*.exe,除了MySQL会被ORACLE闭源外,而mariadb则开源,他俩之间到底还有什么本质区别没有? 区别一: MariaDB不仅仅是Mysql的一个替代品,它的主
-
C#连接mariadb(MYSQL分支)代码示例分享
首先配置好你的MariaDb,创建test数据库,在test里创建MyTable表,脚本如下(通过HeidiSQL导出的脚本): 复制代码 代码如下: -- ---------------------------------------------------------- 主机: 172.16.40.153-- 服务器版本: 5.5.5-10.0.4-MariaDB-1~wheezy-log -
-
MySQL分支选择参考:Percona还是MariaDB
在MySQL被Oracle收购以后,越来越多的人对于MySQL的前景表示了担忧,对于开源的MySQL,或多或少对于Oracle自家的数据库产品产生冲击,这个开源免费的MySQL 对于Oracle更多的是包袱而不是资产.比如淘宝就从Oracle转成了MySQL,一些大型互联网公司也在推行去IOE(I:IBM,O:Oracle,E:EMC),甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险. Percona 在介绍 Percona 之前,首要要介绍的是
-
关于MariaDB安装问题小记(CMake Error at)
今日在安装MariaDB的时候始终提示如下错误,但是我已经安装了libaio-devel库: CMake Error at cmake/build_configurations/mysql_release.cmake:128 (MESSAGE): aio is required on Linux, you need to install the required library: Debian/Ubuntu: apt-get install libaio-dev RedHat/Fedora/Or
-
MariaDB(Mysql分支)my.cnf配置文件中文注释版
复制代码 代码如下: # /usr/share/mysql/my-huge.cnf # MariaDB 配置文件 示例模板(huge,巨型).## 本文件适用于专用数据库服务器, 内存为 1G-2G# 机器上主要只运行 MariaDB的大型系统 ,## MariaDB 程序会根据运行的操作系统平台查找一系列的配置文件,# 你可以将此模板配置文件拷贝到对应的位置(并重命名),# 要查看有哪些配置文件会被读取到,执行:# 'my_print_defaults --help' 并查看# Default
-
MariaDB中的thread pool详细介绍和使用方法
Thread pool是什么 MySQL是每个连接上来都要创建一个线程来执行语句.这样每一个新的连接进来即会创建一个新的线程,这种动作对MySQL本身压力比较大.Threadpool是提供一种线程代理的模型执行每个连接的语句.而MySQL内部维护一个可能接受的线程总数,减少线程太多在CPU切换等方面的压力. 使用Threadpool的好处 1.使用线程代理的模型在连接数已知可控的情况下,提前创建好过线程并利用操作系统的threadpool技术维护,能减少很多开销. 2.尽可能的使用操作系统的线程
-
vue中mint-ui环境搭建详细介绍
vue中mint-ui环境搭建详细介绍 首先需要如下配置node (最好用淘宝源) $ npm install -g cnpm --registry=https://registry.npm.taobao.org 以及git 从官方github拉下来mint-ui git clone https://github.com/ElemeFE/mint-ui.git 进入mint-ui npm run dev 全程大概5-10分钟,出现 Build completed in 34.926s Chil
-
canvas 画布在主流浏览器中的尺寸限制详细介绍
canvas 画布在主流浏览器中的尺寸限制详细介绍 通过测试发现,canvas在不同浏览器下面有不同的最大尺寸限制. 大家都知道,canvas有自身的width,height属性来控制尺寸,用css的width,height,控制显示的大小.可以理解为canvas就是一个img,属性的width,height就是这个img的原图像素大小.但在各浏览器下,设置canvas尺寸时发现有最大尺寸限制.测试一下与大家分享. 测试代码 <!DOCTYPE html> <html> <h
-
PHP中error_reporting函数用法详细介绍
PHP中error_reporting函数用法详细介绍 PHP中对错误的处理会用到error_reporting函数,看到最多的是error_reporting(E_ALL ^ E_NOTICE),这个是什么意思呢?下面我们具体分析error_reporting函数. 定义用法 error_reporting() 设置 PHP 的报错级别并返回当前级别. 语法 error_reporting(report_level) 如果参数 report_level 未指定,当前报错级别将被返回.下面几项是
-
Maven中pom.xml配置文件详细介绍
setting.xml主要用于配置maven的运行环境等一系列通用的属性,是全局级别的配置文件:而pom.xml主要描述了项目的maven坐标,依赖关系,开发者需要遵循的规则,缺陷管理系统,组织和licenses,以及其他所有的项目相关因素,是项目级别的配置文件. 基础配置 一个典型的pom.xml文件配置如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org
-
Android中View绘制流程详细介绍
创建Window Window即窗口,这个概念在AndroidFramework中的实现为android.view.Window这个抽象类,这个抽象类是对Android系统中的窗口的抽象.在介绍这个类之前,我们先来看看究竟什么是窗口呢? 实际上,窗口是一个宏观的思想,它是屏幕上用于绘制各种UI元素及响应用户输入事件的一个矩形区域.通常具备以下两个特点: 独立绘制,不与其它界面相互影响: 不会触发其它界面的输入事件: 在Android系统中,窗口是独占一个Surface实例的显示区域,每个窗口的S
-
c++中STL库队列详细介绍
1.queue单向队列(先进先出,只能从尾端加元素,从头删元素) 使用方式:在前面加上文件名'#include<queue>',再进行声明'queue<int>m;''其中'<>'里面是数组的类型,'m'是数组的名字. 操作: 1.q.push()//入队 2.q.pop()//让队首出队 3.q.front()//获得队首元素 4.q.back()//获得队尾元素 5.q.empty() 队列是否为空 6.q.size(
-
Java中ArrayList的使用详细介绍
目录 1.ArrayList类 1.1ArrayList类概述 1.2ArrayList类常用方法 1.2.1构造方法 1.2.2成员方法 1.2.3示例代码 1.3ArrayList存储字符串并遍历 1.3.1案例需求 1.3.2代码实现 1.4ArrayList存储学生对象并遍历 1.4.1案例需求 1.4.2代码实现 1.5ArrayList存储学生对象并遍历升级版 1.5.1案例需求 1.5.2代码实现 总结 1.ArrayList类 1.1ArrayList类概述 在java中,我们会
-
React组件封装中三大核心属性详细介绍
目录 1.介绍 2.state 概念 演示 3.props 概念 props与state区别 4.refs 概念 refs种类 5.父子组件 什么是父子组件 父子组件之间传值 1.介绍 React组件中默认封装了很多属性,有的是提供给开发者操作的,其中有三个属性非常重要:state.props.refs. 2.state 概念 state是类组件的一个默认属性,用于标识类组件的状态,负责更新UI,让页面动态变化,当state变化时,组件将被重新渲染. 函数组件没有对象属性(babel默认开启了局
-
C++设计模式中的工厂模式详细介绍
目录 1. 简单工厂模式 2. 工厂方法模式 3. 抽象工厂模式 1. 简单工厂模式 简单工厂模式(Simple Factory Pattern): 是指定义一个工厂类,工厂类中实现一个方法,此方法根据不同的参数返回不同的类,UML类图如下所示: 代码如下: #include <iostream> using namespace std; class Product { public: ~Product() {} // 纯虚函数 virtual void Create(string conte
随机推荐
- ASP.NET Mvc开发之查询数据
- ES6下React组件的写法示例代码
- 在Mac OS上安装Go语言编译器的方法
- 虚拟主机ACCESS转换成MSSQL完全攻略(图文教程)
- Android拍照得到全尺寸图片并进行压缩
- Python中死锁的形成示例及死锁情况的防止
- asp.net URL 显示乱码 解决方法
- js 获取和设置css3 属性值的实现方法
- JS实现鼠标经过好友列表中的好友头像时显示资料卡的效果
- 生成多字段排序分页的SQL的通用类
- JBuilder2005实现重构
- Android星级评分条控件RatingBar使用详解
- js实现简单的省市县三级联动效果实例
- 浮动的div自适应居中显示的js代码
- SqlServer快速检索某个字段在哪些存储过程中(sql 语句)
- jQuery焦点图左右转换效果
- jQuery Position方法使用和兼容性
- 模仿动画的放大缩小容器
- 通过注册表禁用DOS窗口来保护系统安全
- 跨站脚本攻击+Cookies欺骗(Discuz篇)