「mysql优化专题」详解引擎(InnoDB,MyISAM)的内存优化攻略?(9)

上一篇我们讲了关于视图应用与优化,本篇我们讲解内存优化。本篇短小精悍,通俗易懂。

注意:以下都是在MySQL目录下的my.ini文件中改写。

一、InnoDB内存优化

InnoDB用一块内存区域做I/O缓存池,该缓存池不仅用来缓存InnoDB的索引块,而且也用来缓存InnoDB的数据块。

1、innodb_log_buffer_size

决定了InnoDB重做日志缓存的大小,可以避免InnoDB在事务提交前就执行不必要的日志写入磁盘操作。

2、设置Innodb_buffer_pool_size

改变量决定了InnoDB存储引擎表数据和索引数据的最大缓存区大小。

二、MyISAM内存优化

MyISAM存储引擎使用key_buffer缓存索引模块,加速索引的读写速度。对于MyISAM表的数据块,mysql没有特别的缓存机制,完全依赖于操作系统的IO缓存。

1、read_rnd_buffer_size

对于需要做排序的MyISAM表查询,如带有order by子句的sql,适当增加read_rnd_buffer_size的值,可以改善此类的sql性能。但需要注意的是read_rnd_buffer_size独占的,如果默认设置值太大,就会造成内存浪费。

2、key_buffer_size设置

key_buffer_size决定MyISAM索引块缓存分区的大小。直接影响到MyISAM表的存取效率。对于一般MyISAM数据库,建议1/4可用内存分配给key_buffer_size:

key_buffer_size=2G

3、read_buffer_size

如果需要经常顺序扫描MyISAM表,可以通过增大read_buffer_size的值来改善性能。但需要注意的是read_buffer_size是每个seesion独占的,如果默认值设置太大,就会造成内存浪费。

三、调整MySQL参数并发相关的参数

1、调整max_connections

提高并发连接

2、调整thread_cache_size

加快连接数据库的速度,MySQL会缓存一定数量的客户服务线程以备重用,通过参数thread_cache_size可控制mysql缓存客户端线程的数量。

3、innodb_lock_wait_timeout

控制InnoDB事务等待行锁的时间,对于快速处理的SQL语句,可以将行锁等待超时时间调大,以避免发生大的回滚操作。(技术文)

原文发布于微信公众号 - java进阶架构师(java_jiagoushi)

原文发表时间:2017-12-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏芋道源码1024

关于 MySQL 的知识点与面试常见问题都在这里

Mysql开发技巧: MySQL开发技巧(一)  MySQL开发技巧(二)  MySQL开发技巧(三)

1600
来自专栏Java成神之路

简单分析什么是SQL注入漏洞

现在很多人在入侵的过程中基本都是通过SQL注入来完成的,但是有多少人知道为什么会有这样的注入漏洞呢?有的会随口说着对于字符的过滤不严造成的。但是事实是这样吗?我...

7962
来自专栏文渊之博

解决session阻塞的问题

简介     对于数据库运维人员来说创建session或者查询时产生问题是常规情况,下面介绍一种很有效且不借助第三方工具的方式来解决类似问题。 最近开始接触运维...

2035
来自专栏GreenLeaves

SET NOCOUNT ON

作用:阻止在结果集中返回显示受T-SQL语句或则usp影响的行计数信息。 当SET ONCOUNT ON时候,不返回计数,当SET NOCOUNT OFF时候,...

1947
来自专栏MySQL实战分享

MongoDB 第五期 : 托管 MongoDB 操作指南

本文从自动化部署工具的介绍开始,从四点介绍了MongoDB的部署流程,并从结构、采集部署配置、日报及数据库表结构介绍了MongoDB的监控,以及从策略、状态查询...

4863
来自专栏用户2442861的专栏

MySQL学习笔记_如何选择合适的存储引擎

http://www.cnblogs.com/huligong1234/archive/2012/06/10/2544154.html

843
来自专栏跟着阿笨一起玩NET

SQL Server复制需要有实际的服务器名称才能连接到服务器

SQL Server 2005/2008 配置 Transactional  Replication 过程中,出现如下异常信息。

4721
来自专栏恒恒的专栏

swoole+php搭建高性能脚本服务

后台服务的业务逻辑中,或多或少需要一些异步去处理的脚本逻辑,例如业务的统计、上报、数据运算,定时监控等等。实现的方法也有很多,用linux自带的c...

2511
来自专栏Java架构师历程

MySQL的三大引擎

InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本 的差别为:

1.4K2
来自专栏杨建荣的学习笔记

关于评审开发人员的sql语句(r3笔记第11天)

在平时的工作中,经常会有一些开发人员提出一些数据库相关的一些问题。可能问的最多的就是sql语句了。 按照一个标准的流程,开发提交的sql语句在完成一系列测试之后...

3907

扫码关注云+社区

领取腾讯云代金券