mysql5.6 1g内存配置_MySQL5.6-内存占用配置方法

1.方法一

MySQL 5.6相比于前代GA版本性能提升显著,但默认缓存设置对于小型站点并不合理。通过修改my.ini文件中的performance_schema_max_table_instances参数,能够有效降低内存占用。

默认my.ini文件位置:

WIN7安装后默认位置(跟安装时指定的目录相关):D:\MySQL5.6\data\my.ini

C:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.6

修改参数:

下列参数在 Workbench的配置操作: Configuation-Options File-Performance选项卡

performance_schema_max_table_instances在运行的服务器已改为8000,

内存占用必须设置这个而且与table_definition_cache, table_open_cache的值必须适配,否则占用内存不会线性减少

performance_schema_max_table_instances=400   (默认未设置,预置 10000 [1万])  ,

table_definition_cache=400                                            (默认1400)

table_open_cache=256                                                    (默认2000)

保存之后重新启动MySQL服务,其内存占用即可从400MB以上降低至40MB左右。

2.若1无效,尝试 方法二

进入mysql安装目录用记事本打开my.ini对应如下参数进行修改。

参数参照如下:

table_cache=1024 物理内存越大,设置就越大.默认为2402,调到512-1024最佳

innodb_additional_mem_pool_size=4M   默认为2M

innodb_flush_log_at_trx_commit=1

(设置为0就是等到innodb_log_buffer_size列队满后再统一储存,默认为1)

innodb_log_buffer_size=2M             默认为1M

innodb_thread_concurrency=8       你的服务器CPU有几个就设置为几,建议用默认一般为8

key_buffer_size=256M                       默认为218       调到128最佳

tmp_table_size=64M                      默认为16M        调到64-256最挂

read_buffer_size=4M                       默认为64K

read_rnd_buffer_size=16M              默认为256K

sort_buffer_size=32M                   默认为256K

max_connections=1024                 默认为1210

thread_cache_size=120             默认为60

query_cache_size=64M

修改完后保存。重启下mysql。

3、方法三

刚启动的内存只占700M,半天后1.5G,运行2天后就占3G内存了,包括FP,以前重启MYSQL就降下来了,这样我就设置计划任务每天早上自动重启mysql,但现在重启mysql也没用,竟然连同FP占用4.5G内存,而我服务器只有2G物理内存,造成网站运行超级慢。怎么办???? 服务器配置是win2003+PHP5+MYSQL5+ZEND3.3 ~~~~~my.ini 解决办法 解决mySQL占用内存超大问题 为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆。网上搜索了一下,得到高人指点my.ini。再也没见再详细的了..只好打开my.ini逐行的啃,虽然英文差了点,不过多少M还是看得明的^-^ 更改后如下:  代码如下 复制代码 innodb_buffer_pool_size=576M ->256M InnoDB引擎缓冲区占了大头,首要就是拿它开刀 query_cache_size=100M           ->16M 查询缓存 tmp_table_size=102M                 ->64M 临时表大小 key_buffer_size=256m                 ->32M 重启mysql服务后,虚拟内存降到200以下. 另外mysql安装目录下有几个文件:my-huge.ini 、my-large.ini、my-medium.ini...这几个是根据内存大小作的建议配置,新手在设置的时候也可以参考一下。 2G内存的MYSQL数据库服务器 my.ini优化 (my.ini) 2G内存,针对站少,优质型的设置,试验特:  代码如下 复制代码 table_cache=1024 物理内存越大,设置就越大.默认为2402,调到512-1024最佳 innodb_additional_mem_pool_size=8M    默认为2M innodb_flush_log_at_trx_commit=0 等到innodb_log_buffer_size列队满后再统一储存,默认为1 innodb_log_buffer_size=4M           默认为1M innodb_thread_concurrency=8        你的服务器CPU有几个就设置为几,默认为8 key_buffer_size=256M                    默认为218        调到128最佳 tmp_table_size=64M                    默认为16M         调到64-256最挂 read_buffer_size=4M                    默认为64K read_rnd_buffer_size=16M           默认为 ......   测试 2G内存,针对站多,抗压型的设置,最佳:    代码如下 复制代码 table_cache=1024 物理内存越大,设置就越大.默认为2402,调到512-1024最佳 innodb_additional_mem_pool_size=4M   默认为2M innodb_flush_log_at_trx_commit=1 (设置为0就是等到innodb_log_buffer_size列队满后再统一储存,默认为1) innodb_log_buffer_size=2M             默认为1M innodb_thread_concurrency=8       你的服务器CPU有几个就设置为几,建议用默认一般为8 key_buffer_size=256M                       默认为218       调到128最佳 tmp_table_size=64M                      默认为16M        调到64-256最挂 read_buffer_size=4M                       默认为64K read_rnd_buffer_size=16M              默认为256K sort_buffer_size=32M                   默认为256K max_connections=1024                 默认为1210 thread_cache_size=120             默认为60 query_cache_size=64M 优化mysql数据库性能的十个参数: (1)、max_connections 允许的同时客户的数量。增加该值增加 mysqld 要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 too many connections 错误。 (2)、record_buffer 每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。如果你做很多顺序扫描,你可能想要增加该值。 (3)、key_buffer_size 索引块是缓冲的并且被所有的线程共享。key_buffer_size是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写),到你能负担得起那样多。如果你使它太大,系统将开始换页并且真的变慢了。 (4)、back_log 要求mysql能有的连接数量。当主要mysql线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。 back_log 值指出在mysql暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的tcp/ip连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。 当你观察你的主机进程列表,发现大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | null | connect | null | login | null 的待连接进程时,就要加大 back_log 的值了。 (5)、interactive_timeout 服务器在关闭它前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对 mysql_real_connect()使用 client_interactive 选项的客户。 (6)、sort_buffer 每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速order by或group by操作。 (7)、table_cache 为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。mysql对每个唯一打开的表需要2个文件描述符。 (8)、thread_cache_size 可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 connections 和 threads_created 状态的变量,可以看到这个变量的作用。 (9)、mysql的搜索功能 用mysql进行搜索,目的是能不分大小写,又能用中文进行搜索 只需起动mysqld时指定 –default-character-set=gb2312 (10)、wait_timeout 服务器在关闭它之前在一个连接上等待行动的秒数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值