MySql减少内存占用的方法详解

前言

默认设置下,mysql会初始化很大的内存块用于缓存数据库查询数据。

但我的小主机只有640mb的内存,top查询发现他吃了我30% 的内存总量,差不多200MB。

但这个数据库里只有几MB的数据,感觉这设置很不合理。

经过爬文,终于把内存占用降到了128MB

实现方法

直接修改 /etc/mysql/mysql.conf.d/mysqld.cnf

在配置末尾追加如下配置

performance_schema_max_table_instances=150
table_definition_cache=150
table_open_cache=64

然后 service mysql restart 重启服务即可

效果

优化前

优化后

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • MySQL占用内存较大与CPU过高测试与解决办法

    更改后如下: innodb_buffer_pool_size=576M ->256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀 query_cache_size=100M ->16M 查询缓存 tmp_table_size=102M ->64M 临时表大小 key_buffer_size=256m ->32M 重启mysql服务后,虚拟内存降到200以下. 另外mysql安装目录下有几个文件:my-huge.ini .my-large.ini.my-medium.ini..

  • mysql服务性能优化—my.cnf_my.ini配置说明详解(16G内存)

    此配置是老男孩生产线上使用的配置,在培训的时候,他给的,我在这里,对各参数添加了中文说明 这配置已经优化的不错了,如果你的mysql没有什么特殊情况的话,可以直接使用该配置参数 MYSQL服务器my.cnf配置文档详解 硬件:内存16G [client] port = 3306 socket = /data/3306/mysql.sock [mysql] no-auto-rehash [mysqld] user = mysql port = 3306 socket = /data/3306/my

  • MySQL大内存配置方案 如my-medium.ini、my-huge.ini等

    MySql noinstall-5.1.xx-win32 配置(原创) 1.解压mysql-noinstall-5.1.xx-win32.zip 到你喜欢的目录,例如:d:\php\mysql 2.在根目录d:\php\mysql中有五个配置信息文件: my-small.ini (内存 <= 64M) my-medium.ini (内存 128M ) my-large.ini (内存 512M) my-huge.ini (内存 1G-2G) my-innodb-heavy-4G.ini (内存

  • MySQL 5.5.49 大内存优化配置文件优化详解

    一.配置文件说明 my-small.cnf my-medium.cnf my-large.cnf my-huge.cnf my-innodb-heavy-4G.cnf 二.详解 my-innodb-heavy-4G.cnf 三.配置文件优化 注:环境说明,CentO5.5 x86_64+MySQL-5.5.32 相关软件下载:http://yunpan.cn/QtaCuLHLRKzRq 一.配置文件说明 Mysql-5.5.49是Mysql5.5系列中最后一个版本,也是最后一个有配置文件的版本,

  • MySQL内存使用的查看方式详解

    前言 本文主要给大家介绍了关于MySQL内存使用查看的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 使用版本:MySQL 5.7 官方文档 在performance_schema有如下表记录内存使用情况 mysql> show tables like '%memory%summary%'; +-------------------------------------------------+ | Tables_in_performance_schema (%memor

  • Mysql5.6启动内存占用过高解决方案

    vps的内存为512M,安装好nginx,php等启动起来,mysql死活启动不起来看了日志只看到对应pid被结束了,后跟踪看发现是内存不足被killed; 调整my.cnf 参数,重新配置(系统默认配置太高直接占用400M内存,小玩家玩不起呢)即可 performance_schema_max_table_instances=200 table_definition_cache=200 table_open_cache=128 下面附一个相关的my.cnf配置文件的说明 [client] po

  • MySql减少内存占用的方法详解

    前言 默认设置下,mysql会初始化很大的内存块用于缓存数据库查询数据. 但我的小主机只有640mb的内存,top查询发现他吃了我30% 的内存总量,差不多200MB. 但这个数据库里只有几MB的数据,感觉这设置很不合理. 经过爬文,终于把内存占用降到了128MB 实现方法 直接修改 /etc/mysql/mysql.conf.d/mysqld.cnf 在配置末尾追加如下配置 performance_schema_max_table_instances=150 table_definition_

  • Android通过json向MySQL中读写数据的方法详解【读取篇】

    本文实例讲述了Android通过json向MySQL中读取数据的方法.分享给大家供大家参考,具体如下: 首先 要定义几个解析json的方法parseJsonMulti,代码如下: private void parseJsonMulti(String strResult) { try { Log.v("strResult11","strResult11="+strResult); int index=strResult.indexOf("[");

  • Android通过json向MySQL中读写数据的方法详解【写入篇】

    本文实例讲述了Android通过json向MySQL中写入数据的方法.分享给大家供大家参考,具体如下: 先说一下如何通过json将Android程序中的数据上传到MySQL中: 首先定义一个类JSONParser.Java类,将json上传数据的方法封装好,可以直接在主程序中调用该类,代码如下 public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String j

  • Mysql Binlog数据查看的方法详解

    binlog介绍 binlog,即二进制日志,它记录了数据库上的所有改变. 改变数据库的SQL语句执行结束时,将在binlog的末尾写入一条记录,同时通知语句解析器,语句执行完毕. binlog格式 基于语句,无法保证所有语句都在从库执行成功,比如update ... limit 1; 基于行,将每一次改动记为binlog中的一行.在执行一个特别复杂的update或者delete操作时,基于行的格式会有优势. 登录到mysql查看binlog 只查看第一个binlog文件的内容 show bin

  • VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解

    本文实例讲述了VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法.分享给大家供大家参考,具体如下: 昨天试用了VPS,花了一天部署了一个简单应用.在下面的过程中省去了用django 创建project的一步,忘记了你自己一用startporject 创建. 下面是原来边操作,边记录的东西,我习惯文本编辑.可能格式不好看.现在搬到博客中来. 首先安装GCC. yum -y install gcc automake autoconf libtool ma

  • mysql存储过程原理与使用方法详解

    本文实例讲述了mysql存储过程原理与使用方法.分享给大家供大家参考,具体如下: 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql 存储过程的优点 #1. 用于替代程序写的SQL语句,实现程序与sql解耦 #2. 可以通过直接修改存储过程的方式修改业务逻辑(或bug),而不用重启服务器 #3. 执行速度快,存储过程经过编译之后会比单独一条一条执行要快 #4. 减少网络传输,尤其是在高并发情况下这点优势大,存储过程直接就在数据库服务器上

  • MYSQL日志的正确删除方法详解

    本文详细讲述了MYSQL日志的正确删除方法.分享给大家供大家参考,具体如下: 1.查找: MySQL> show binary logs; +------+---–+ | Log_name | File_size | +------+---–+ | mysql-bin.000001 | 150462942 | | mysql-bin.000002 | 125 | | mysql-bin.000003 | 106 | +------+---–+ 2.删除bin-log(删除mysql-bin.00

  • MYSQL数据库表结构优化方法详解

    本文实例讲述了MYSQL数据库表结构优化方法.分享给大家供大家参考,具体如下: 选择合适的数据类型 1.使用可以存下你的数据的最小的数据类型 2.使用简单的数据类型.Int要比varchar类型在mysql处理上简单 3.尽可能的使用not null定义字段 4.尽量少用text类型,非用不可时最好考虑分表 使用int来存储日期时间,利用FROM_UNIXTIME()[将int类型时间戳转换成日期时间格式],UNIX_TIMESTAMP()[将日期时间格式转换成int类型]两个函数进行转换 使用

  • mysql去重的两种方法详解及实例代码

    mysql去重 方法一:   在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值.其原因是 distinct只能返回它的目标字段,而无法返回其它字段 下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. 比如我想用一条语句查询得到name不重复的所有

  • 批量杀死MySQL连接的四种方法详解

    方法一 通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令. 复制代码 代码如下: mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root'; +------------------------+ | concat('KILL ',id,';') | +----------

随机推荐