Chinaunix首页 | 论坛 | 博客
  • 博客访问: 352396
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1640
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-05 11:44
个人简介

文章不在长,坚持不懈记录下努力前行的脚步

文章分类

全部博文(166)

文章存档

2017年(19)

2016年(59)

2015年(88)

我的朋友

分类: Mysql/postgreSQL

2015-07-06 14:47:49

服务器的配置应该符合他的工作负载、数据、以及应用需求;
需要设置的重要参数很少,--基本配置项;
schema优化、索引、查询设计;
防止过度调优;

mysql配置的工作原理
获取配置信息:命令行参数和配置文件
配置文件---操作系统启动脚本
命令行参数--启动时也会读取配置文件

查找配置文件
$ which mysqld
/mnt/mysql/bin/mysqld
$ /mnt/mysql/bin/mysqld --verbose --help|grep -A 1 'Default options'
Default options are read from the following files in the given order:
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

配置文件语法、作用域和动态性
语法:都使用小写,单词之间用下划线或横线分开,建议使用统一风格
/usr/sbin/mysqld --auto-increment-offset=5
/usr/sbin/mysqld --auto_increment_offset=5
上面两者相同
作用域:全局、会话、对象三个级别
动态性:运行时可以修改
修改方式
set                  sort_buffer_size = <value>;
set    GLOBAL  sort_buffer_size = <value>;
set            @@sort_buffer_size = <value>;
set @@session.sort_buffer_size = <value>;
set   @@global.sort_buffer_size = <value>;

改变全局值,当前会话和已经存在的会话不受影响。
注意参数的单位

set default值
把这个值赋给会话级变量可以把变量改为使用全局值,把它赋给全局变量可以设置这个变量为编译内置的默认值,
建议不要这样设置全局级。

设置变量的副作用
常用变量
1.key_buffer_size
一次性分配,但不是立即分配,使用时真正分配
mysql允许创建多个键缓存
对一个已经存在的键缓存设置非零值,会导致刷新该键缓存内容。这会阻碍所有尝试访问该键缓存的操作,直到刷新操作完成。
2.table_cache_size
个数
3.thread_cache_size
mysql只在关闭连接时才在缓存中增加线程,只在创建新连接时才从缓存中删除线程
4.query_cache_size
谨慎设置--动态修改可能导致服务hang死
5.read_buffer_size
只有查询需要使用时才会为该缓存分配内存--一次性分配
6.read_rnd_buffer_size
只有查询需要使用时才会为该缓存分配内存--按需分配
7.sort_buffer_size
只在做排序时分配,一次性分配参数大小的内存

会话级分配内存,如sort_buffer_size,参数设置小点,大的排序操作时动态分配并恢复
set @@session.sort_buffer_size:=<value>;
-- execute the query...
set @@session.sort_buffer_size:=default;--不建议改成默认值
可以将类似的代码封装在函数中方便使用, 其他可以单个连接级别设置的变量有
read_buffer_size/read_rnd_buffer_size/tmp_buffer_size/myisam_sort_buffer_size
也可以使用空瓶子替换;-- 推荐使用






































阅读(836) | 评论(0) | 转发(0) |
0

上一篇:loose index probe

下一篇:my.cnf配置文件

给主人留下些什么吧!~~