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

yizhihongxing

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

背景

随着数据量的增长,MySQL 数据库所使用的内存也变得越来越多,如果不对MySQL 进行优化,可能会使数据库性能严重下降。本文将介绍如何针对MySQL 5.5.49版进行大内存优化和配置文件优化,以提高MySQL的性能。

大内存优化

MySQL的大内存优化主要包括以下几个方面:

1. 与系统内存的交互

在MySQL的大内存优化中,最重要的应该是与系统内存的交互。因为MySQL需要频繁的申请和释放内存,而这些内存分配操作的效率直接影响了MySQL的性能。在Linux系统下,内存模型涉及到的主要因素是vm.overcommit_ratio。默认情况下,该参数的值是50%(如图1),我们可以通过修改该参数的值来提高MySQL的性能。

# 查看vm.overcommit_ratio
$ cat /proc/sys/vm/overcommit_ratio
50

# 修改vm.overcommit_ratio值为10%
$ echo 10 > /proc/sys/vm/overcommit_ratio

2. 内存分配大小

在MySQL中,内存的分配和释放是通过malloc和free这两个系统函数实现的。由于malloc调用的动态内存分配策略的影响,这可能会导致MySQL的性能下降。我们可以在MySQL中通过调整该参数的值来提高内存分配效率。

# 设置内存分配大小为1 MB
$ set global innodb_buffer_pool_chunk_size = 1073741824;

3. 使用回收内存

MySQL中通过使用回收内存功能来提高内存的使用效率。回收内存是在MySQL在启动时启动的,它通过执行一些检测来发现被误用或者闲置的内存,然后将其回收。这样就可以有始有终地维护MySQL中的内存资源,从而可以提高MySQL的性能。在MySQL列出了以下回收内存相关的变量:

  • innodb_buffer_pool_instances: 设定分配给InnoDB缓冲池的内存块数目。
  • innodb_lru_scan_depth: 设定InnoDB在每次LRU扫描时从LRU链表中删除的页面数。
  • innodb_old_blocks_pct: 设定InnoDB缓冲池的页面是新的或是旧的页面的比率。
  • innodb_old_blocks_time: 设定InnoDB缓冲池中的数据块在成为不活动块之后可以存在多长时间。

例如,如果需要回收InnoDB缓冲池中的内存,我们可以执行以下命令:

SET GLOBAL innodb_buffer_pool_dump_now = 1;
SET GLOBAL innodb_buffer_pool_load_now = 1;

配置文件优化

在MySQL优化中,通过配置文件调整参数也是非常重要的。假设我们拥有一台内存为64GB的服务器,并安装了MySQL 5.5.49版本。则可以通过以下方式编辑/etc/my.cnf文件:

[mysqld]
basedir          = /usr/local/mysql
datadir          = /var/lib/mysql

# 改变缓冲区的大小,它将通过mysql自动调整。
sort_buffer_size = 2M
read_buffer_size = 2M
# 指定打开文件的数量
open_files_limit = 2048
# 下面这个设置只会在linux下生效
thread_cache_size = 4
# 没有索引的表最多占用内存的总量
tmp_table_size     = 32M
max_heap_table_size= 32M
# 配置缓存池大小为512M
innodb_buffer_pool_size = 512M
innodb_log_buffer_size  = 8M
innodb_write_io_threads = 2
innodb_read_io_threads  = 2

总结

本文中我们介绍了MySQL 5.5.49版的大内存优化和配置文件优化,主要包括与系统内存的交互、内存分配大小、使用回收内存以及配置文件优化等方面。通过这些优化手段,可以提高MySQL的性能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL 5.5.49 大内存优化配置文件优化详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 将MySQL去重操作优化到极致的操作方法

    下面是详细讲解将MySQL去重操作优化到极致的操作方法的完整攻略。 1. 针对单表的去重操作 1.1 利用DISTINCT关键字 在MySQL中,可以使用DISTINCT关键字实现对单表去重操作。例如,以下SQL语句可以筛选出表table1中name列不重复的记录: SELECT DISTINCT name FROM table1; 1.2 利用GROUP …

    MySQL 2023年5月19日
    00
  • MySQL性能参数详解之Max_connect_errors 使用介绍

    MySQL性能参数Max_connect_errors的作用是限制客户端连接MySQL服务器失败的次数。如果一个客户端在连接MySQL服务器时出现了太多的错误,MySQL服务器就会认为这个客户端是一个恶意的攻击者,并对其进行限制,直至在Max_connect_errors所设定的限制次数内连接成功为止。 Max_connect_errors的默认值是100,…

    MySQL 2023年5月18日
    00
  • 重装系统,新安装IDEA启动项目后,classnotfound:com.mysql.jdbc.Driver

    这个Test connection会自动帮你下载的,但是如果中途一直叫你try again,甚至到后面点这个test connection有弹窗,但是单窗里面的选项你点击后没反应,我是直接卸载IDEA重装了,(浪费一个下午弄这个问题),然后再来一次,就成功了。 我再说一下症状:我新装的IDEA,(重装系统),打开我以前的maven项目试着启动,报错找不到co…

    MySQL 2023年4月12日
    00
  • Mysql优化技巧之Limit查询的优化分析

    下面是关于Mysql优化技巧之Limit查询的优化分析的完整攻略。 1. 为什么需要对Limit查询进行优化 在实际应用开发中,我们常常需要进行分页查询,而Mysql提供了LIMIT语句来解决分页查询的问题,但是如果我们的数据量非常大时,就需要进行Limit查询的优化,否则会对Mysql服务器的性能产生很大的影响。 2. Limit查询的优化分析 针对Lim…

    MySQL 2023年5月19日
    00
  • MySQL MyISAM默认存储引擎实现原理

    MySQL的MyISAM是一种默认的存储引擎,实现原理主要涉及如何实现数据的存储、索引以及数据的检索等方面,下面是详细的攻略: 1、数据存储 MyISAM以表格的形式将数据存储在磁盘上,表格由三个文件组成,分别是表结构定义文件(.frm)、MYD数据文件和MYI索引文件。MYD文件存储表格的数据部分,而MYI文件存储数据的索引部分。其中MYI文件可以在MyS…

    MySQL 2023年5月19日
    00
  • 解压版MYSQL安装及遇到的错误及解决方法

    解压版MYSQL安装和遇到的错误及解决方法 安装步骤 下载解压版的MySQL安装包,官方地址:https://dev.mysql.com/downloads/mysql/ 将压缩包解压到指定目录中,如:D:\mysql 进入MySQL目录,在该目录下新建my.ini文件,并添加以下内容: ini [mysqld] # 设置MySQL安装目录 basedir=…

    MySQL 2023年5月18日
    00
  • 对于mysql的query_cache认识的误区

    标题:对于MySQL的query_cache的认识误区 MySQL的query_cache是一个在内存中缓存查询结果的机制,可以极大地提升查询效率。然而,有些人对query_cache存在一些错误的认识,这里我将列举一些常见的误区。 误区一:query_cache会自动适应场景 有些人认为,只要开启了query_cache, MySQL就会自动判断什么时候缓…

    MySQL 2023年5月19日
    00
  • MySQL配置文件my.cnf优化详解(mysql5.5)

    MySQL配置文件my.cnf优化详解(mysql5.5) MySQL作为一款广泛应用的数据库管理系统,在数据处理能力、存储空间使用效率,甚至是高并发下的性能表现等方面,都需要经过一些优化手段。其中,修改MySQL配置文件my.cnf是我们提高MySQL性能的一种可行方式。 本文将详细讲解如何对MySQL的my.cnf进行优化,以提高MySQL的性能表现。 …

    MySQL 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部