当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-01-25 22:43:00  来源:本站整理

my.ini(my.cnf)与mysql优化指南[MySQL防范]

赞助商链接



  本文“my.ini(my.cnf)与mysql优化指南[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

mysql优化了

所以先说说这个,其实这个,很复杂,关于差别的网站,其在线,拜候量,帖子数目,网络情形,以及机械配置
都有关系,优化不是一次可以完成的,需求不断的察看和调试,以获得最佳效果
下面我引用 Asiwish和老高的两篇优化办法,给大家看看

这些设置,只要通过改正 win2000的c:/winnt/my.ini 大概 win2003的 c:/windows/my.ini 来实现

首先,我们翻开这个文件,先将最底部的密码项改成别的的,这个对数据库本身没影响,主如果避免一些有心人获得这个密码,对我们不利

然后大家看看两个例子,此中一些设置,略懂的英文的,即懂得是什么意思,
不晓得可以去查单词,我懒得一个个对比写阐明了
一个是 千人在线,1G内存的

#This File was made using the WinMySQLAdmin 1.4 Tool
#2004-2-23 16:28:14

#Uncomment or Add only the keys that you know how works.
#Read the MySQL Manual for instructions

[mysqld]
basedir=D:/mysql
#bind-address=210.5.*.*
datadir=D:/mysql/data
#language=D:/mysql/share/your language directory
#slow query log#=
#tmpdir#=
#port=3306
set-variable = max_connections=1500
skip-locking
#skip-networking
set-variable = key_buffer=384M
set-variable = max_allowed_packet=1M
set-variable = table_cache=512
set-variable = sort_buffer=2M
set-variable = record_buffer=2M
set-variable = thread_cache=8
# Try number of CPU’s*2 for thread_concurrency
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=64M
#set-variable = connect_timeout=5
#set-variable = wait_timeout=5
server-id = 1
[isamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M

[myisamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[WinMySQLadmin]
Server=D:/mysql/bin/mysqld-nt.exe
这个筹划,整体够用了,但是在pconnect和最大衔接数上,需求研究
max_connections没必要那么大,我个人认为几百就够,不然给服务器加大了不少负担,常常会当机
衔接超时的设置也要按照实际情形调整,大家可以安闲调整,然后察看效果若何.

下面是老高两年前的一些倡议,大家参考一下

7、MYSQL 的优化(/etc/my.cnf)
1)确认在“[mysqld]”部份加入了“skip-innodb”和“skip-bdb”参数;
2)确认在“[mysqld]”部份加入了“skip-name-resolve”和“skip-locking”参数;
3)假如不需求的话,可以将二进制日记(binlog)停掉,办法是将“log-bin”注释掉;
4)在内存答应的情形下,对一些参数举行重新配置,目标在于将大部份操作集合于内存中,尽大概不举行磁盘操作,关于我的 MYSQL 服务器我是以下改正的,基于 2G 内存情形:

[mysqld]
set-variable = key_buffer=512M
set-variable = max_allowed_packet=4M
set-variable = table_cache=1024
set-variable = thread_cache=64
set-variable = join_buffer_size=32M
set-variable = sort_buffer=32M
set-variable = record_buffer=32M
set-variable = max_connections=512
set-variable = wait_timeout=120
set-variable = interactive_timeout=120
set-variable = max_connect_errors=30000
set-variable = long_query_time=1
set-variable = max_heap_table_size=256M
set-variable = tmp_table_size=128M
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=128M

你可以按照“show status”号令返回的状况举行微调.我主要注意以下变量的数值,越小越好,最好为零:)
Created_tmp_disk_tables
Created_tmp_tables
Created_tmp_files
Slow_queries
别的 mysql wait_timeout 那个值设置大了没用 做10左右便可了 (大C说得)

wait_timeout是利用长期连线时 闲暇进程的掌握 只要数据库在衔接状况 他是不举行干涉的 不管能否有查询或更新操作 把这个设置小一点 再利用pconnect就对比抱负了 

timeout的時間﹐我的經驗值是5-20﹐看你的SERVER的訪問量了~~ (梦飞说的)

拜候量越大 这个值就应当越小 不然留出的闲暇进程太多 会占用不必要的内存
在一个15分钟在线3000人的论坛上 设置为3对比符合 同时翻开pconnect

别的,我再引用一篇文章

数据库衔接过量的错误,大概的缘由解析及办理办法

解析

系统不能衔接数据库,关键要看两个数据:
1、数据库系统答应的最大可衔接数max_connections.这个参数是可以设置的.假如不设置,默许是100.最大是16384.
2、数据库当前的衔接线程数threads_connected.这是动态改变的.
查看max_connections、max_connections的办法见后.

假如 threads_connected == max_connections 时,数据库系统就不能供应更多的衔接数了,这时,假如程序还想新建衔接线程,数据库系统就会回绝,假如程序没做太多的错误处理,就会呈现近似强坛的报错信息.

因为成立和销毁数据库的衔接,城市损耗系统的资源.并且为了避免在同一时间同时翻开过量的衔接线程,目前编程普通都利用所谓数据库衔接池技术.

但数据库衔接池技术,并不能避免程序错误招致衔接资源损耗殆尽.

这种情形普通发生在程序未能及时释放数据库衔接资源或其他缘由造成数据库衔接资源不能释放,但强坛系统预计不会发生这种初级的编程错误.
该错误的简便的查抄办法是,在革新强坛页面时,不断监督threads_connected的改变.假如max_connections充足大,而threads_connected值不断增添以至到达max_connections,那么,就应当查抄程序了.当然,假如采取数据库衔接池技术,threads_connected增长到数据库衔接池的最大衔接线程数时,就不再增长了.

从强坛出错的情形看,更大的大概性是数据库系统没能举行适本地配置.下面提出一点倡议.供参考

让你们的工程师把MySQL的最大答应衔接数从默许的100调成32000.这就不会老呈现衔接过量的问题了.

查看max_connections

进入MySQL,用号令:show variables
查看数据库最大可衔接数的变量值:max_connections

查看threads_connected

进入MySQL,用号令:show status
查看当前活动的衔接线程变量值:threads_connected

设置max_connections

设置办法是在my.cnf文件中,增添下面的最后红色的一行:

——————————————————————————–

[mysqld]
port=3306
#socket=MySQL
skip-locking
set-variable = key_buffer=16K
set-variable = max_allowed_packet=1M
set-variable = thread_stack=64K
set-variable = table_cache=4
set-variable = sort_buffer=64K
set-variable = net_buffer_length=2K
set-variable = max_connections=32000

——————————————————————————–

改正完毕后,重启MySQL便可.当然,为了确保设置精确,应当查看一下max_connections.

注意:
1、固然这里写的32000.但实际MySQL服务器答应的最大衔接数16384;
2、除max_connections外,上述其他配置应当按照你们系统自身需求举行配置,没必要拘泥;
3、增添了最大答应衔接数,对系统损耗增添不大.
4、假如你的mysql用的是my.ini作配置文件,设置近似,但设置的格局要稍作变通.
可见,mysql的优化,是多样化,且按照环境差别,必须机动调整的,大家不可生搬硬套,自己渐渐领会吧

我这次的教程,就写到这里,感激大家对我的支持

假若有什么不足,欢送提出来,我做增补   以上是“my.ini(my.cnf)与mysql优化指南[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • MYSQL 浅谈MyISAM 存储引擎
  • <b>mysql myisam优化设置</b>
  • mysql数据据存储引擎InnoDB和MyISAM的上风及辨别
  • MySQL中InnoDB和MyISAM的差别
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .