博客
关于我
MySQL高级-内存管理及优化
阅读量:790 次
发布时间:2023-02-13

本文共 842 字,大约阅读时间需要 2 分钟。

MySQL 内存优化指南

1. 内存优化原则

在优化MySQL性能时,合理分配内存是关键。以下是一些重要的原则:

  • 优先分配内存给MySQL做缓存,但要确保操作系统和其他程序有足够的内存支持。
  • 如果使用MyISAM存储引擎,由于其数据文件依赖于操作系统的IO缓存,需要预留更多内存给操作系统。
  • 排序区、连接区等缓存是按session分配的,默认值需根据最大连接数合理设置。过大不仅浪费资源,还可能导致内存耗尽。
  • 2. MyISAM 内存优化

    MyISAM存储引擎使用key_buffer缓存索引块,以加速索引读写速度。其数据块则完全依赖于操作系统的IO缓存。

    key_buffer_size

    key_buffer_size决定MyISAM索引块缓存区的大小,直接影响查询效率。建议至少分配MySQL 1/4的可用内存给key_buffer_size。

    key_buffer_size=512M

    read_buffer_size

    对于频繁进行顺序扫描的MyISAM表,可以通过增大read_buffer_size来改善性能。但需注意,每个session独占该值,设置过大会浪费内存。

    read_rnd_buffer_size

    对于带有ORDER BY子句的排序查询,可以适当增加read_rnd_buffer_size以提升性能。但同样需注意,每个session独占该值,设置过大会导致内存浪费。

    3. InnoDB 内存优化

    InnoDB使用内存缓存池来缓存索引和数据块,最大缓存池大小由innodb_buffer_pool_size决定。值越大,缓存命中率越高,磁盘I/O消耗越少,性能越佳。

    innodb_buffer_pool_size=512M

    innodb_log_buffer_size

    决定InnoDB重做日志缓存大小。对于大事务数据库,可以增大innodb_log_buffer_size以减少事务提交时的磁盘写入。

    innodb_log_buffer_size=10M

    转载地址:http://qhdfk.baihongyu.com/

    你可能感兴趣的文章
    mysql进阶 with-as 性能调优
    查看>>
    mysql进阶-查询优化-慢查询日志
    查看>>
    wargame narnia writeup
    查看>>
    MySQL进阶篇SQL优化(InnoDB锁问题排查与解决)
    查看>>
    Mysql进阶索引篇03——2个新特性,11+7条设计原则教你创建索引
    查看>>
    mysql远程连接设置
    查看>>
    MySql连接出现1251Client does not support authentication protocol requested by server解决方法
    查看>>
    Mysql连接时报时区错误
    查看>>
    MySql连接时提示:unknown Mysql server host
    查看>>
    MySQL连环炮,你扛得住嘛?
    查看>>
    mysql逗号分隔的字符串如何搜索
    查看>>
    MySQL通用优化手册
    查看>>
    Mysql通过data文件恢复
    查看>>
    MYSQL遇到Deadlock found when trying to get lock,解决方案
    查看>>
    MYSQL遇到Deadlock found when trying to get lock,解决方案
    查看>>
    mysql部署错误
    查看>>
    MySQL配置信息解读(my.cnf)
    查看>>
    Mysql配置文件my.ini详解
    查看>>
    MySQL配置文件深度解析:10个关键参数及优化技巧---强烈要求的福利来咯。
    查看>>
    Mysql配置表名忽略大小写(SpringBoot连接表时提示不存在,实际是存在的)
    查看>>