加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

MariaDB内存占用优化

发布时间:2019-03-07 04:10:38 所属栏目:编程 来源:腾讯云加社区
导读:查询最高内存占用 行使以下呼吁可以知道mysql的设置行使几多 RAM SELECT(@@key_buffer_size +@@query_cache_size +@@innodb_buffer_pool_size +@@innodb_additional_mem_pool_size +@@innodb_log_buffer_size +@@max_connections*(@@read_buffer_size +@@r

可以看到此时的并发数也就是Threads_connected=1,还远远达不到2048

  1. mysql> show variables like 'open_files_limit'; 
  2. +------------------+-------+ 
  3. | Variable_name    | Value | 
  4. +------------------+-------+ 
  5. | open_files_limit | 65535 | 
  6. +------------------+-------+ 
  7. 1 row in set (0.00 sec) 

max_connections 还取决于操纵体系对单历程应承打开最大文件数的限定

也就是说假如操纵体系限定单个历程最大可以打开100个文件

那么 max_connections 配置为200也没什么用

MySQL 的 open_files_limit 参数值是在MySQL启动时记录的操纵体系对单历程打开最大文件数限定的值

可以行使 show variables like 'open_files_limit'; 查察 open_files_limit 值

  1. ulimit -n 65535  

可能直接在 Linux 下通过ulimit -n呼吁查察操纵体系对单历程打开最大文件数限定 ( 默以为1024 )

connection级内存参数(线程独享)

connection级参数,是在每个connection第一次必要行使这个buffer的时辰,一次性分派配置的内存。

排序机能

mysql对付排序,行使了两个变量来节制sort_buffer_size和 max_length_for_sort_data, 不象oracle行使SGA节制. 这种方法的弱点是要单独节制,轻易呈现排序机能题目.

  1. mysql> SHOW GLOBAL STATUS like '%sort%'; 
  2. +---------------------------+--------+ 
  3. | Variable_name             | Value  | 
  4. +---------------------------+--------+ 
  5. | Sort_merge_passes         | 0      | 
  6. | Sort_priority_queue_sorts | 1409   | 
  7. | Sort_range                | 0      | 
  8. | Sort_rows                 | 843479 | 
  9. | Sort_scan                 | 13053  | 
  10. +---------------------------+--------+ 
  11. 5 rows in set (0.00 sec) 
  • 假如发明Sort_merge_passes的值较量大,你可以思量增进sort_buffer_size 来加快ORDER BY 可能GROUP BY 操纵,不能通过查询可能索引优化的。我们这为0,那就没须要配置那么大。

读取缓存

read_buffer_size = 128K(默认128K)为必要全表扫描的MYISAM数据表线程指定缓存

read_rnd_buffer_size = 4M:(默认256K)起首,该变量可以被任何存储引擎行使,当从一个已经排序的键值表中读取行时,会先从该缓冲区中获取而不再从磁盘上获取。

大事宜binlog

  1. mysql> show global status like 'binlog_cache%'; 
  2. +-----------------------+----------+ 
  3. | Variable_name         | Value    | 
  4. +-----------------------+----------+ 
  5. | Binlog_cache_disk_use | 220840   | 
  6. | Binlog_cache_use      | 67604667 | 
  7. +-----------------------+----------+ 
  8. 2 rows in set (0.00 sec) 
  • Binlog_cache_disk_use暗示由于我们binlog_cache_size计划的内存不敷导致缓存二进制日记用到了姑且文件的次数
  • Binlog_cache_use 暗示 用binlog_cache_size缓存的次数
  • 当对应的Binlog_cache_disk_use 值较量大的时辰 我们可以思量恰当的调高 binlog_cache_size 对应的值
  • 如上图,现网是32K,我们加到64K

join语句内存影响

假如应用中,很少呈现join语句,则可以不消太在乎join_buffer_size参数的配置巨细。

假如join语句不是很少的话,小我私人提议可以恰当增大join_buffer_size到1MB阁下,假如内存富裕可以配置为2MB。

线程内存影响

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读