mysql read_buffer_size 设置多少合适

key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 458624 K

read_buffer_size:是MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。

如下是对于16g内存的设置

read_buffer_size = 1M

个人机器是32G的,一般数据库就用来存储数据,很少用mysql 所以我就设置为2M或3M

手机在线更新系统MySQL数据库服务器参数优化mycnf,16G内存8核CPU

业务场景:后台支持手机在线更新系统,db服务器内存16G,8核,dell的pc服务器。

qps: 200个左右
tps: 1个左右 一分钟50几个

sort_buffer_size = 32M 大了, 8M即可
read_buffer_size = 32M 大了,8M即可
read_rnd_buffer_size = 16M 大了,8M即可
table_open_cache = 512
小了,建议改成2048

max_allowed_packet = 5M
小了,建议改成16M

tmp_table_size=64M
小了,建议改成2G

innodb_buffer_pool_size = 3000M
小了,改成db服务器总内存的60% 到80%

innodb_additional_mem_pool_size = 20M 小了,改成128M

join_buffer_size 这个参数为什么没有看到,必须设置值,join_buffer_size = 8M 必须补上,这个是跟join table 关联的,很重要。

(0)

相关推荐

  • mysql read_buffer_size 设置多少合适

    key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections = 458624 K read_buffer_size:是MySQL读入缓冲区大小.对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区.read_buffer_size变量控制这一缓冲区的大小.如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能. 如下是对于16g内存

  • Mysql连接数设置和获取的方法

    获取连接数 --- 获取最大连接数 SHOW VARIABLES LIKE '%max_connections%'; --- 获取连接列表 SHOW PROCESSLIST; --- 获取连接列表 SHOW FULL PROCESSLIST; --- 获取当前的链接信息 Threads_connected是当前的连接数 SHOW STATUS LIKE 'Threads%'; --- 获取连接统计 比如历史最大连接数以及最大连接时长等 SHOW STATUS LIKE '%Connection%

  • MySQL为id选择合适的数据类型

    选择 id 的数据类型,不仅仅需要考虑数据存储类型,还需要了解 MySQL 对该种类型如何计算和比较.例如,MySQL 将 ENUM 和 SET 类型在内部使用整型存储,但是在字符串场景下会当做字符串进行比较.一旦选择了 id 的数据类型后,需要保证引用 id 的相关数据表的数据类型一致,而且是完全一致,这包括属性,例如长度.是否有符号!如果混用不同的数据类型可能导致性能问题,即便是没有性能问题,在进行比较时的隐式数据转换可能导致难以捉摸的错误.而如果在实际开发过程中忘记了数据类型不同这个问题,

  • MySQL数据库设置远程访问权限方法小结

    MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机. 1,设置访问单个数据库权限 复制代码 代码如下: mysql>grant all privileges on test.* to 'root'@'%'; 说明:设置用户名为root,密码为空,可访问数据库test 2,设置访问全部数据库权限 复制代码 代码如下: mysql>grant all privileges on *.* to 'root'

  • MySQL性能设置

    MySQL性能设置 网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究 MySQL 的优化,第一步自然想到的是 MySQL 系统参数的优化,作为一个访问量很大的网站(日20万人次以上)的数据库系统,不可能指望 MySQL 默认的系统参数能够让 MySQL运行得非常顺畅. 通过在网络上查找资料和自己的尝试,我认为以下系统参数是比较关键的: (1).back_log:    要求 MySQL 能有的连接数量.当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线

  • 深入Mysql字符集设置[精华结合]

    基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等: • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding).例如,我们给字符'A'赋予数值0,给字符'B'赋予数值1,则0就是字符'A'的编码: • 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set).例如,给定字符列表为{'A','B'}时,{'A'=>0, 'B'=>1}就是一个字符集: •

  • MySQL远程访问设置终极方法

    数据库对于服务端开发人员来说,几乎就是左膀右臂.几乎每一个服务端开发人员都要和数据库打交道.而MySQL又以其开源免费,小巧玲珑,简单易用,功能强大占据中国数据库使用份额的半壁江山.从去年接触到Vagrant以来,Vagrant以其方便易用深深吸引了D瓜哥.为了尽可能地和生产环境保持尽可能的一致性,减少不必要的问题的发生,Vagrant+Ubuntu+MySQL几乎是绝配. MySQL允许远程访问的设置 1.注释bind-address = 127.0.0.1. 复制代码 代码如下: >cd /

  • 深入Mysql字符集设置分析

    基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等: • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding).例如,我们给字符'A'赋予数值0,给字符'B'赋予数值1,则0就是字符'A'的编码: • 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set).例如,给定字符列表为{'A','B'}时,{'A'=>0, 'B'=>1}就是一个字符集: •

  • mysql连接数设置操作方法(Too many connections)

    mysql在使用过程中,发现连接数超了~~~~ [root@linux-node1 ~]# mysql -u glance -h 192.168.1.17 -p Enter password: ERROR 1040 (08004): Too many connections 解决办法,这也是centos7下修改mysql连接数的做法: 1)临时修改 MariaDB [(none)]> show variables like "max_connections"; +--------

  • centos上安装mysql并设置远程访问的操作方法

    1.下载mysql的repo源 $ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 2.安装mysql-community-release-el7-5.noarch.rpm包 $ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm 安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.

随机推荐