mysql占多少内存

mysql占多少内存,第1张

MySQL 自身内存规划

说到 MySQL 自身的内存规划,最先想到的就是 MySQL 中各种 buffer 的大小,innodb buffer pool 就是最鹤立鸡群的那个。innodb_buffer_pool_size 参数的大小究竟如何设置,才能保证 MySQL 的性能呢?在官网文档中可以找到这个参数的一些描述:

A larger buffer pool requires less disk I/O to access the same table data more than once. On a dedicated database server, you might set the buffer pool size to 80% of the machine's physical memory size.

意思是在专用数据库服务器上,可以将 innodb_buffer_pool_size 设置为计算机物理内存大小的 80%。在许许多多前辈的的经验中了解到,此参数的值设置为物理内存的 50%~80% 颇为合理。

举个栗子:

innodb buffer pool 分配 76G,每个连接线程最大可用 160M,最大有 3000 连接数,最大可能使用内存总量 545G,但是这台实例所在服务器的物理内存仅仅有 97G,远超物理内存总量。结果可想而知,这个实例在运行中经常被 oom-killer 杀死,想必原因之一即是因为一开始 MySQL 自身的内存规划欠妥。

innodb buffer pool 缓存数据的作用相信大家都懂,比如这个 case 中,可以发现该实例为写密集,读请求很少,innodb buffer 对性能改善作用不大,80% 的内存没必要,完全可以降低到物理内存的50%。

首先说明本人只测试了40G的东西。大于40G的还没有测试。

在上传之前我们需要将my.ini修改一个参数max_allowed_packet.将参数设置为max_allowed_packet=100000M。1M=1024*1024。以此类推。1G=...。

不经过此设置可能会发生以下问题:MySQL server has gone away .出现这个问题的原因是因为client端和mysql server端断开了。一般是 *** 作sql文件时间过长导致的。

设置好之后重启

这里我经过测试:max_allowed_packet最大只能设置为1G=10737418248/1024/1024/1024.

查看max_allowed_packet命令为如下:

下面开始使用命令行来上传sql文件。

一、进入mysql的bin目录下

二、执行如下语句

mysql -uroot -p 数据库 <sql所在目录

提示输入密码即可导入大数据量的sql文件。

三、如何检验文件是否在上传或者文件是否已经传完毕。打开您的mysql管理工具(比如navicat)。按F5看对应的库记录和大小或者上次更新时间是否在变化就好了。

四:上传过程可能比较漫长。上传完毕


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

原文地址: https://outofmemory.cn/zaji/5896527.html

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

发表评论

登录后才能评论

评论列表(0条)

保存