MySQL内存相关参数

MySQL内存相关参数,第1张

相关查看命令

sql>show global variables like 'innodb_buffer_pool_size'

sql>show global status like 'Innodb_buffer_pool_pages_data'

sql>show global status like 'Innodb_page_size'

有的参数对应不同引擎,比如对于innodb引擎的,都是innodb_打头。

例如:

innodb_buffer_pool_size = 81920M

join_buffer_size = 1024M

innodb_sort_buffer_size =1024M

sort_buffer_size = 2048M

read_rnd_buffer_size = 2048M

innodb_log_buffer_size = 128M

innodb_log_file_size =2048M

innodb_log_files_in_group=10

bulk_insert_buffer_size=4096M

myisam_sort_buffer_size = 512M

myisam_max_sort_file_size = 10G

thread_cache_size = 300

ft_min_word_len = 1 #for chinese full text search

query_cache_size = 512M

query_cache_limit = 4M

query_cache_type = 0

query_cache_min_res_unit = 2k

thread_stack = 512K

tmp_table_size = 3G

max_heap_table_size = 3G

long_query_time = 3

log-slave-updates

max_binlog_cache_size = 8M

调优参考计算方法:

val = Innodb_buffer_pool_pages_data / Innodb_buffer_pool_pages_total * 100%

val >95% 则考虑增大 innodb_buffer_pool_size, 建议使用物理内存的75%

val <95% 则考虑减小 innodb_buffer_pool_size, 建议设置为:Innodb_buffer_pool_pages_data * Innodb_page_size * 1.05 / (1024*1024*1024)

设置命令:set global innodb_buffer_pool_size = 2097152//缓冲池字节大小,单位kb,如果不设置,默认为128M

设置要根据自己的实际情况来设置,如果设置的值不在合理的范围内,并不是设置越大越好,可能设置的数值太大体现不出优化效果,反而造成系统的swap空间被占用,导致 *** 作系统变慢,降低sql查询性能。

修改配置文件的调整方法,修改my.cnf配置:

innodb_buffer_pool_size = 2147483648  #设置2G

innodb_buffer_pool_size = 2G  #设置2G

innodb_buffer_pool_size = 500M  #设置500M

MySQL5.7及以后版本,改参数时动态的,修改后,无需重启MySQL,但是低版本,静态的,修改后,需要重启MySQL。

好歹也要1个G的内存吧……

512内存够干嘛呢……

连2000块的台式机都不如啊……

再简单的服务器也是服务器啊……

服务器很容易伤不起啊……

随便搞搞lamp,或者装装iis,哪个不要2、3个G?

硬盘空间再大,没啥用的,亲……

因为关键的运算是跑CPU的,复杂的逻辑是跑内存的,硬盘就是个快递搬运工。

我猛然发现,你是50个G的数据库……

天哪。你不得不最少要1个G了。

要不然做一次查询,就够你抽两支烟了。

mysql-5.5就可以了。

#安装依赖包

yum install -y libaio-devel

 

#创建用户

useradd -s /sbin/nologin mysql

 

#创建数据目录

mkdir -p /data/mysql

 

#赋予权限

chown -R mysql:mysql /data/mysql

 

#解压

tar zxvf mysql-5.5.42-linux2.6-x86_64.tar.gz

 

#移动到指定目录

mv mysql-5.5.42-linux2.6-x86_64 /usr/local/mysql

 

#因为系统有一个默认my.cnf,咱们给它改下名字

mv /etc/my.cnf /etc/my.cnf.default

 

#复制我们需要的my.cnf到指定目录

cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf

 

#在support-files目录下有几个cnf,根据内存大小来选择

my-small.cnf (内存<=64M)

my-medium.cnf (内存128M)

my-large.cnf (内存512M)

my-huge.cnf (内存1G-2G)

my-innodb-heavy-4G.cnf (内存4GB)

 

#编辑我们复制过去的my.cnf,并且在[mysqld]的下一行那里插入以下内容

vi /etc/my.cnf

 

[mysqld]

basedir=/usr/local/mysql

datadir=/data/mysql

character-set-server=utf8

 

#添加环境变量,在末尾插入以下内容

vi /etc/profile

 

PATH=/usr/local/mysql/bin:$PATH

export PATH

 

#让刚才的修改生效

source /etc/profile

 

#复制启动脚本到指定目录

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

 

#准备工作都做完了,开始初始化数据库

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql

 

#启动数据库

service mysqld start

 

#开机启动

chkconfig mysqld on


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7465981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存