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

8G内存下MySQL的优化详细方案

发布时间:2020-12-12 00:02:42 所属栏目:MySql教程 来源:网络整理
导读:p style="font-family:'Microsoft YaHei','微软雅黑',helvetica,arial,verdana,tahoma,sans-serif;font-size:15px;letter-spacing:1px;line-height:25px;" 对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深

<p style="font-family:'Microsoft YaHei','微软雅黑',helvetica,arial,verdana,tahoma,sans-serif;font-size:15px;letter-spacing:1px;line-height:25px;">
对于任何一个数据库管理系统来说,内存的分配使用绝对可以算的上是其核心之一了,所以很多希望更为深入了解某数据库管理系统的人,都会希望一窥究竟,我也不例外。


<p style="font-family:'Microsoft YaHei',sans-serif;font-size:15px;letter-spacing:1px;line-height:25px;">
这里给出方案


<p style="font-family:'Microsoft YaHei',sans-serif;font-size:15px;letter-spacing:1px;line-height:25px;">
按照下面的设置试试看:


<blockquote style="border:0px;min-height:inherit;line-height:25px;color:rgb(51,51,51);font-size:15px;font-family:'Microsoft YaHei',sans-serif;letter-spacing:1px;background:rgb(238,238,238);">

key_buffer_size= 3840M
max_allowed_packet = 16M
table_cache = 1024
sort_buffer_size = 32M
read_buffer_size = 32M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size = 256M
thread_cache_size = 32
query_cache_size = 256M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

上限是?,不能再多了。

从内存的使用方式MySQL 数据库的内存使用主要分为以下两类:?和?

线程独享内存

全局共享内存

注:innodb_flush_log_trx_commit 参数对 InnoDB Log 的写入性能有非常关键的影响。该参数可以设置为0,1,2,解释如下:

0:log buffer中的数据将以每秒一次的频率写入到log file中,且同时会进行文件系统到磁盘的同步操作,但是每个事务的commit并不会触发任何log buffer 到log file的刷新或者文件系统到磁盘的刷新操作;
1:在每次事务提交的时候将log buffer 中的数据都会写入到log file,同时也会触发文件系统到磁盘的同步;
2:事务提交会触发log buffer 到log file的刷新,但并不会触发磁盘文件系统到磁盘的同步。此外,每秒会有一次文件系统到磁盘同步操作。
此外,MySQL文档中还提到,这几种设置中的每秒同步一次的机制,可能并不会完全确保非常准确的每秒就一定会发生同步,还取决于进程调度的问题。实际上,InnoDB 能否真正满足此参数所设置值代表的意义正常 Recovery 还是受到了不同 OS下文件系统以及磁盘本身的限制,可能有些时候在并没有真正完成磁盘同步的情况下也会告诉 mysqld 已经完成了磁盘同步。

延伸阅读:

(编辑:李大同)

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

    推荐文章
      热点阅读