mysql参数怎么使用 mysql 参数

mysql 性能优化参数配置mysql -u root -p 回车输入密码进入mysql
show processlist;
查看连接数,可以发现有很多连接处于sleep状态,这些其实是暂时没有用的 , 所以可以kill掉
show variables like "max_connections";
查看最大连接数,应该是与上面查询到的连接数相同,才会出现too many connections的情况
set GLOBAL max_connections=1000;
修改最大连接数 , 但是这不是一劳永逸的方法 , 应该要让它自动杀死那些sleep的进程 。
show global variables like 'wait_timeout';
这个数值指的是mysql在关闭一个非交互的连接之前要等待的秒数,默认是28800s
set global wait_timeout=300;
修改这个数值,这里可以随意,最好控制在几分钟内
set global interactive_timeout=500;
修改这个数值,表示mysql在关闭一个连接之前要等待的秒数,至此可以让mysql自动关闭那些没用的连接 , 但要注意的是 , 正在使用的连接到了时间也会被关闭 , 因此这个时间值要合适
SHOW VARIABLES LIKE '%table_open_cache%';
查看
show global status like 'Open%tables';
MySQL参数指定创建 InnoDB 索引期间用于排序数据的排序缓冲区的大小 这个参数只会在创建索引的过程中被使用 , 不会用在后面的维护操作;
MyISAM表发生变化时重新排序所需的缓冲;
每个session 分配的排序缓存 。
如果"排序的数据大小"sort_buffer_size,则为内存排序;如果"排序的数据大小"sort_buffer_size,则为磁盘排序
如果max_length_for_sort_data 配置的比较?。?可能使用 rowid 排序算法,如果max_length_for_sort_data 配置的比较大 , 可能使用全字段排序算法
学会设置五大类MySQL参数 (一)连接
连接通常来自Web服务器 下面列出了一些与连接有关的参数 以及该如何设置它们
max_connections
这是Web服务器允许的最大连接数 记住每个连接都要使用会话内存(关于会话内存 文章后面有涉及)
max_packet_allowed
最大数据包大小 通常等于你需要在一个大块中返回的最大数据集的大小 如果你在使用远程mysqldump 那它的值需要更大
aborted_connects
检查系统状态的计数器 确定其没有增长 如果数量增长说明客户端连接时遇到了错误
thread_cache_size
入站连接会在MySQL中创建一个新的线程 因为MySQL中打开和关闭连接都很廉价 速度也快 它就没有象其它数据库 如Oracle那么多持续连接了 但线程预先创建并不会节约时间 这就是为什么要MySQL线程缓存的原因了
如果在增长请密切注意创建的线程 让你的线程缓存更大 对于 或 的thread_cache_size 内存占用也不多
(二)查询缓存
MySQL中的缓存查询包括两个解析查询计划 以及返回的数据集 如果基础表数据或结构有变化 将会使查询缓存中的项目无效
query_cache_min_res_unit
MySQL参数中query_cache_min_res_unit查询缓存中的块是以这个大小进行分配的 使用下面的公式计算查询缓存的平均大小 根据计算结果设置这个变量 MySQL就会更有效地使用查询缓存 缓存更多的查询 减少内存的浪费
query_cache_size
这个参数设置查询缓存的总大小
query_cache_limit
这个参数告诉MySQL丢掉大于这个大小的查询 一般大型查询还是比较少见的 如运行一个批处理执行一个大型报表的统计 因此那些大型结果集不应该填满查询缓存
qcache hit ratio = qcache_hits / (qcache_hits + _select)
使用
SQL show status like qcache% ;
SQL show status like _% ;
找到这些变量
average query size = (query_cache_size qcache_free_memory)/qcache_queries_in_cache

推荐阅读