当前位置: 首页 > 图文教程 > 数据库 > MYSQL > MYSQL教程:my.cnf缓存优化

MYSQL
mysql "too many connections" 错误 之 mysql解决方法
MySQL: mysql is not running but lock exists 的解决方法
使用mysql中遇到的几个问题
MySQL一个索引最多有多少个列?真实的测试例子
MySQL里Create Index 能否创建主键 Primary Key
MySQL 创建索引(Create Index)的方法和语法结构及例子
MYSQL 优化常用方法
linux mysql 找回密码
mysql 动态执行存储过程语句
MySQL 查找价格最高的图书经销商的几种SQL语句
MySQL 客户端不输入用户名和密码直接连接数据库的2个方法
mysql 查询表中平均分最低的班级
mysql 左连接、右连接和内连接
Mysql LONGBLOB 类型存储二进制数据 (修改+调试+整理)
Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)
Mysql 插入中文及中文查询 (修改+调试)
mysql 数据表中查找重复记录
MySql .frm数据库文件导入的问题
解决hibernate+mysql写入数据库乱码
mySQL UNION运算符的默认规则研究

MYSQL教程:my.cnf缓存优化


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 105 ::
收藏到网摘: n/a

1、看机器配置,指三大件:cpu、内存、硬盘
2、看mysql配置参数
3、查系mysql行状态,可以用mysqlreport工具来查看
4、查看mysql的慢查询
依次解决了以上问题之后,再来查找程序方面的问题


my.cnf缓存优化
在 my.cnf 中添加/修改以下选项:

#取消文件系统的外部锁
 skip-locking

 #不进行域名反解析,注意由此带来的权限/授权问题
 skip-name-resolve

 #索引缓存,根据内存大小而定,如果是独立的db服务器,可以设置高达80%的内存总量
 key_buffer = 512M

 #连接排队列表总数
 back_log = 200
 max_allowed_packet = 2M

 #打开表缓存总数,可以避免频繁的打开数据表产生的开销
 table_cache = 512

 #每个线程排序所需的缓冲
 sort_buffer_size = 4M

 #每个线程读取索引所需的缓冲
 read_buffer_size = 4M

 #MyISAM表发生变化时重新排序所需的缓冲
 myisam_sort_buffer_size = 64M

 #缓存可重用的线程数
 thread_cache = 128

 #查询结果缓存
 query_cache_size = 128M

 #设置超时时间,能避免长连接
 set-variable = wait_timeout=60

 #最大并发线程数,cpu数量*2
 thread_concurrency = 4

 #记录慢查询,然后对慢查询一一优化
 log-slow-queries = slow.log
 long_query_time = 1

 #关闭不需要的表类型,如果你需要,就不要加上这个
 skip-innodb
 skip-bdb