mysql 5.6与5.7内存参数优化内存占用为30MB左右

MySQL 5.6 和 5.7 默认启动时占用内存高达400多兆,对于小型内存应用而言,这样的内存占用率明显偏高,可能导致系统崩溃。为了解决这一问题,我们可以通过编辑 `/etc/my.cnf` 文件,在 `[mysqld]` 下调整或修改以下参数以优化内存使用。具体调整如下:1. `performance_schema_max_table_instances = ...
mysql 5.6与5.7内存参数优化内存占用为30MB左右
MySQL 5.6 和 5.7 默认启动时占用内存高达400多兆,对于小型内存应用而言,这样的内存占用率明显偏高,可能导致系统崩溃。为了解决这一问题,我们可以通过编辑 `/etc/my.cnf` 文件,在 `[mysqld]` 下调整或修改以下参数以优化内存使用。

具体调整如下:

1. `performance_schema_max_table_instances = 200`
2. `table_definition_cache = 100`
3. `table_open_cache = 100`

调整这三个参数的值,可以显著降低内存占用,将 MySQL 使用的内存减少到约60兆左右,大大降低了默认内存使用量。

进一步的调整包括:

1. `innodb_buffer_pool_size = 2M`
2. 禁用 `performance_schema` 功能(默认启用,占用大量内存)

在完成上述调整后,MySQL 的内存使用量大约降至22兆。以下是完整的配置文件示例,适用于 CentOS 6 64位系统,使用 yum 安装的环境:

通过 ssh 登录服务器或 VPS,编辑 `/etc/my.cnf` 文件,执行以下配置:

`# For advice on how to change settings please see`

`dev.mysql.com/doc/refman/`

`[mysqld]`

`# innodb_buffer_pool_size = 128M`

`# log_bin`

`#`

`# join_buffer_size = 128M`

`# sort_buffer_size = 2M`

`# read_rnd_buffer_size = 2M`

`datadir=/var/lib/mysql`

`socket=/var/lib/mysql/mysql.sock`

`#symbolic-links=0`

`skip-external-locking`

`key_buffer_size = 8M`

`max_allowed_packet = 1M`

`table_open_cache = 4`

`sort_buffer_size = 64K`

`read_buffer_size = 256K`

`read_rnd_buffer_size = 256K`

`net_buffer_length = 2K`

`thread_stack = 240K`

`innodb_buffer_pool_size=2M`

`performance_schema_max_table_instances=50`

`table_definition_cache=50`

`table_open_cache=32`

`max_connections=50`

`max_user_connections=35`

`wait_timeout=10`

`interactive_timeout=15`

`long_query_time=5`

`symbolic-links=0`

`sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES`

`[mysqld_safe]`

`log-error=/var/log/mysqld.log`

`pid-file=/var/run/mysqld/mysqld.pid`

以上配置文件中包含了多个参数调整,旨在降低内存占用,提高性能和稳定性。在实际应用中,根据服务器资源和业务需求进行微调,以达到最佳的性能和资源利用。2024-10-22
mengvlog 阅读 10 次 更新于 2025-07-20 17:03:08 我来答关注问题0
檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部