1、查看Mysql版本

# mysql -V

示例:

[root@root /]# mysql -V
mysql Ver 14.14 Distrib 5.7.44, for Linux (x86_64) using EditLine wrapper

各个参数含义:

  • mysql:表示这是一个MySQL命令。
  • Ver 14.14:表示MySQL的版本号是14.14。
  • Distrib 5.7.44:表示MySQL的发行版本是5.7.44。
  • for Linux (x86_64):表示这个MySQL版本是为Linux操作系统(64位)设计的。
  • using EditLine wrapper:表示MySQL使用EditLine作为命令行界面。

结论:当前Mysql版本是5.7.44

2、查看MySQL安装路径

# whereis mysql

示例:

[root@root /]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

各个参数含义:

  • mysql::表示接下来的内容是关于mysql的路径信息。
  • /usr/bin/mysql:表示mysql命令行工具的安装路径是/usr/bin/mysql。
  • /usr/lib64/mysql:表示mysql库文件的路径是/usr/lib64/mysql。
  • /usr/include/mysql:表示mysql头文件的路径是/usr/include/mysql。
  • /usr/share/mysql:表示mysql的配置文件的路径是/usr/share/mysql。
  • /usr/share/man/man1/mysql.1.gz:表示mysql命令行工具的手册页的路径是/usr/share/man/man1/mysql.1.gz。

结论:MySQL的安装路径是/usr/lib64/mysql

3、修改配置优化内存

3.1、优化前

当前一台2核2G的服务器,mysql占用内存情况如下:

top - 13:44:55 up 5 days, 20:22,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 113 total, 1 running, 112 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
KiB Mem : 1798504 total, 164088 free, 723960 used, 910456 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 876948 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
31243 mysql 20 0 1464.1m 198.8m 10.8m S 0.0 11.3 2:08.21 mysqld

可以看到当前Mysql占用的内存大小是198.8M。

3.2、优化配置

3.2.1 、查询配置文件的位置

通过执行mysqld --verbose --help | grep -A 1 "Default options",可以找到MySQL服务器启动时读取的配置文件路径

示例:

[root@root /]# mysql --verbose --help | grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

各个参数含义:

  • /etc/mysql/my.cnf:这是MySQL的默认配置文件路径,通常包含全局配置选项。
  • /etc/my.cnf:这是另一个常见的配置文件路径,用于存储全局配置选项。
  • ~/.my.cnf:这是用户级别的配置文件路径,可以用于覆盖全局配置选项。

MySQL会按照上述顺序依次读取这些配置文件,并将它们合并为一个最终的配置。

如果多个文件中存在相同的配置选项,则后面的文件中的值将覆盖前面的文件中的值。

结论:这里选择修改/etc/my.cnf文件,因为该文件通常用于存储全局配置选项。

3.2.2、修改配置文件

1、修改innodb_buffer_pool_size参数

这是InnoDB存储引擎的缓冲池大小,它决定了多少数据和索引被缓存在内存中,适当调整这个值可以减少内存使用。

查看当前的innodb_buffer_pool_size大小:

mysql> SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)

当前的大小是约128M。

一般是占用总内存的50-70%,但我目前没什么数据量,所以砍一半,调成64M。

修改:

[root@root /]# vim /etc/my.cnf

[mysqld]
innodb_buffer_pool_size = 64M
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M

将这三个值的大小都调低了一半。

2、修改key_buffer_size参数

key_buffer_size是MySQL中用于缓存MyISAM表索引的参数,我这里基本不用MyISAM,所以这个参数可以调小一点。

原来默认的是32M,我调整成8M。

key_buffer_size = 8M

重启Mysql,让修改生效

[root@root /]# systemctl restart mysqld

再次查看当前的innodb_buffer_pool_size大小:

mysql> SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
+-------------------------+----------+
| Variable_name | Value |
+-------------------------+----------+
| innodb_buffer_pool_size | 67108864 |
+-------------------------+----------+
1 row in set (0.00 sec)

可以看到当前的大小已经调整为64M了。

3.2、优化后效果

查看当前mysql的内存占用情况:

top - 14:53:31 up 5 days, 21:31,  1 user,  load average: 0.02, 0.04, 0.05
Tasks: 112 total, 1 running, 111 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.7 us, 0.3 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1798504 total, 157688 free, 630204 used, 1010612 buff/cache
KiB Swap: 1049596 total, 1049596 free, 0 used. 970700 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
24890 mysql 20 0 931.5m 124.8m 9.2m S 0.0 7.1 0:00.37 mysqld

通过top命令可以看到当前mysql的内存占用情况,已经从之前的198M降低到了128M左右。

内存占比也从之前的11.3%降到了7.1%。

总结:通过降低innodb_buffer_pool_size和key_buffer_size的值,成功降低了Mysql的内存占用情况,优化成功!!!

mysql刚安装没多久,配置都是默认的,目前只知道修改innodb_buffer_pool_size和key_buffer_size的值,不知道还有其他参数可以调整。

等以后知道了,在继续补充完善。

优化Mysql配置调整内存的更多相关文章

  1. 如何优化tomcat配置(从内存、并发、缓存4个方面)优化

    Tomcat有很多方面,我从内存.并发.缓存四个方面介绍优化方法.  ** 一.Tomcat内存优化 ** Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚 ...

  2. 优化tomcat配置(从内存、并发、缓存3个方面)优化

    Tomcat有很多方面,我从内存.并发.缓存三个方面介绍优化方法. 一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catal ...

  3. 【Tomcat】如何优化tomcat配置(从内存、并发、缓存4个方面)优化

    一.Tomcat内存优化 ** Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数. JAVA_O ...

  4. 优化tomcat配置(从内存、并发、缓存)优化

    一.Tomcat内存优化 ** Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数. JAVA_O ...

  5. TCMalloc优化MySQL、Nginx内存管理

    TCMalloc的全称为Thread-Caching Malloc,是谷歌开发的开源工具google-perftools中的一个成员. 与标准的glibc库的Malloc相比,TCMalloc库在内存 ...

  6. jemalloc优化MySQL、Nginx内存管理

    上一篇文章<TCMalloc优化MySQL.Nginx.Redis内存管理>,下面来看下jemalloc jemalloc源于Jason Evans 2006年在BSDcan confer ...

  7. 优化tomcat配置(从内存、并发、缓存4个方面)优化

    Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数. JAVA_OPTS参数 ...

  8. 优化MySQL开启skip-name-resolve参数时显示“ignored in --skip-name-resolve mode.”Warning解决方法

    转自:http://blog.csdn.net/yiluoak_47/article/details/53381282 参数用途: skip-name-resolve #禁止MySQL对外部连接进行D ...

  9. Java面试题系列(六)优化tomcat配置

    序言 资料 如何优化tomcat配置(从内存.并发.缓存3个方面)优化

  10. 新安装的mysql必须调整的10项配置

    还在为新安装的mysql服务,不知道修改哪些默认配置而发愁吗?mysql可调整参数有100多个,到底要立即!马上!调整哪些最重要的参数? 网络神贴答复你: 这篇文章主要介绍了MySQL优化必须调整的1 ...

随机推荐

  1. NC50493 石子合并

    题目链接 题目 题目描述 将n堆石子绕圆形操场排放,现要将石子有序地合并成一堆.规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分. 请编写一个程序,读入堆数n及每堆的石子 ...

  2. 使用sqlmap执行SQL注入并获取数据库用户名

    Sqlmap介绍 sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, ...

  3. Java开发技巧杂记

    杂记一 创建项目的spring initializr,要求是创建spring boot3.0,且不在支持java8语言,且要求语言大于17,所以创建项目时,无法创建srping2.0项目了:如果要创建 ...

  4. Centos系统下,各种服务重启

    1.sudo systemctl start firewalld 2../redis-server  /usr/local/bin/redis.conf 3.mongod -f /etc/mongod ...

  5. 【Azure Developer】开发模式下使用AAD账号访问Azure Blob的相关参考

    问题描述 开发模式下使用AAD账号访问Azure Blob的流程参考文件 问题解答 第一步:先在AAD中注册一个APP,步骤可参考: 将应用程序注册到 Microsoft 标识平台 :https:// ...

  6. 一文详解云上自动化部署集群管理工具 Nebula Operator

    本文首发于 Nebula Graph 公众号:Nebula Operator 开源啦!一文详解这个云上自动化部署集群管理工具 在介绍 Nebula Operator 之前,让我们先来了解下什么是 Op ...

  7. Python实现ARP攻击

    目录 概述 ARP协议 IP转MAC 结构 ARP扫描 开始欺骗 中间人 其他 ARP老化 防御 windows linux 概述 高中的时候,学校有一个商店,会放开WIFI给偷偷带手机去学校的我们使 ...

  8. MySQL学习之初识数据库

    •数据库的相关概念 DB : 数据库,保存一组有组织的数据的容器 DBMS : 数据库管理系统,又称为数据库软件(产品),用于管理 DB 中的数据 SQL : 结构化查询语言,用于和 DBMS 通信的 ...

  9. 遥感图像镶嵌拼接:ENVI的Pixel Based Mosaicking工具操作方法

      本文介绍基于ENVI软件,利用"Pixel Based Mosaicking"工具实现栅格遥感影像镶嵌拼接的方法.   首先需要说明的是,本文需要镶嵌的遥感影像并不含地理参考信 ...

  10. html5与css3新特性

    HTML5新特性 增加了一些新的标签.新的表单以及新的表单属性等 这些新特性都有兼容性问题,基本上IE9+以上版本浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特性 新增语义化标签 - < ...