key_buffer_size

含义:用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写)。

影响:对于MyISAM表的影响不是很大,MyISAM会使用系统的缓存来存储数据,所以大量使用MyISAM表的机器内存很快会耗尽。但是,如果将该值设得过大(例如,大于总内存50%),系统将转换为页,并变得极慢。MySQL依赖操作系统来执行数据读取时的文件系统缓存,因此必须为文件系统缓存留一些空间。

建议:先设置内存的25%,观察性能变化。

table_open_cache

含义:所有线程打开表的描述符缓存

影响:增加该值能增加mysqld要求的文件描述符的数量。可以避免频繁的打开数据表产生开销。打开一个表的开销可能很大,因为MyISAM会把MYI文件的文件头标识为正在使用,所以在内存中做这个操比较好。国为每个线程都需要打开表,连接数越大这个值就要越大。

table_open_cache>= max_connection*2,有些表打开时,需要两个文件描述符,如MyISAM表,index,临时表等文件符。自链接查询语句,会额外多开启一个该表的文件符(针对性的设置是:找到和数据库有关的所有最复杂的查询语句,包括自链接left/right/inner/outer join及group统计语句)查看这些链接将打开多少数据表,设此值为N

show status like 'opened_tables',如果值很大,要提高table_open_cache值。

thread_cache_size

含义:缓存可重用的线程数。

影响:这个参数设置线程缓存,线和的创建和销毁的开销可能很大,因为每个线程的连接、断开都需要开销。如果应用程序中有大量的跳跃并发连接并且线程较多的话,就要加大它的值。它的目的是在通常的操作中无需创建新线程。

建议:通过至少设置为16。

query_cache_size

含义:指定MySQL查询结果缓冲区的大小。

影响:如果应用程序有大量读,而且没有应用程序级别的缓存,那么这很有用。不过不要设置太大,因为维护它也要开销,这导致性能慢。

建议:通常设置为为32-512Mb。设置完之后最好是跟踪一段时间,查看是否运行良好。在一定的负载压力下,如果缓存命中率太低了,就启用它,如果命中率已经不错了,就可以把他调小一点。对于2G的内存,先从16M开始,一倍一倍的增加,直到命中率稳定为止。

query_cache_limit

含义:缓存单条SQL的结果上限。默认为4KB。

影响:当一条SQL返回的结果集大于这个限制的时候,将不会被MySQL缓存。

建议:设置为1M即可。

query_cache_min_res_unit

含义:缓存为每个数据集存放的最小内存大小,默认4K.

影响:如果太小的话,将会导致MySQL经常访问内存块去获取信息,如果设置太大,则会浪费内存。

建议:如果SQL返回的结果集都很小,参数也可以调小,减少内存浪费。如果单元数据集大于4KB于,可以调大参数。

back_log

含义:在MySQL连接请求等待队列中允许存放的最大连接请求数。系统默认值为50

影响:如果系统在短时是内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接侦听队列的大小。不同的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。

建议:对于Linux系统推荐设置为小于512的整数。

sort_buffer_size

含义:为每个需要进行排序的线程分配该大小的一个缓存区。

影响:增加这值加速ORDER BY 或 GROUP BY 操作。不过该参数对应的分配内存是每连接独占的,如果有100个连接,那么实际分配的总共排序缓冲区大小为100xsort_buffer_size.

建议:一般设置为2M观察变化再调整。

read_buffer_size

含义:顺序查询操作所能使用的缓存区大小。

影响:和sort_buffer_size一样,该参数对应的分配内存也每连接独占

建议:一般设置为2M观察再调整

read_rnd_buffer_size

含义:随机查询操作所能使用的缓冲区大小。

影响:每个线程独占

建议:一般设置为2M再观察变化。

query_cache_type

含义:查询缓冲类型。

影响:为1是使用缓冲,2是除非使用SQL_CACHE才进行缓冲。对于缓冲而言,数据并不是实时的,有一定的延时,但是对地于实时性要求不高的查询短时间内多次执行,是不划算,这个时候就需要缓存。并且缓存中是区分空格和大小写的,如果大小写不一致和人格不一致,也会认为是不同的SQL,不会利用到缓存。虽然不设置查询缓冲,有时可能带来性能上的损失,但有一些SQL语句需要实时地查询数据,或并不经常使用(可能一天就执行一两次),这样就需要把缓冲关了,可以采用临时关闭的方法SELECT_SQL_NO_CACHE。

建议:一般设置为1.

MySQL调优参数的更多相关文章

  1. Tomcat+MySQL常见调优参数

    一.Tomcat 调优 (一).Tomcat内存优化 参数一: vim /tomcat/bin/catalina.sh CATALINA_OPTS="-server -Xms128m -Xm ...

  2. MySQL 调优/优化的 100 个建议

    MySQL 调优/优化的 100 个建议   MySQL是一个强大的开源数据库.随着MySQL上的应用越来越多,MySQL逐渐遇到了瓶颈.这里提供 101 条优化 MySQL 的建议.有些技巧适合特定 ...

  3. MySQL 调优基础(一) CPU与进程

    一般而言,MySQL 的调优可以分为两个层面,一个是在MySQL层面上进行的调优,比如SQL改写,索引的添加,MySQL各种参数的配置:另一个层面是从操作系统的层面和硬件的层面来进行调优.操作系统的层 ...

  4. mysql调优 基础

    MySQL调优可以从几个方面来做: 1. 架构层:做从库,实现读写分离: 2.系统层次:增加内存:给磁盘做raid0或者raid5以增加磁盘的读写速度:可以重新挂载磁盘,并加上noatime参数,这样 ...

  5. Mysql 调优和水平扩展思路

    系统调优参数 一些比较重要的参数: back_log:back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中.如果MySql的连接数据达到max_connecti ...

  6. mysql调优最大连接数

    一.mysql调优 1.1 报错: Mysql: error 1040: Too many connections 1.2 原因: 1.访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器 ...

  7. 数据库MySQL调优实战经验总结<转>

    数据库MySQL调优实战经验总结 MySQL 数据库的使用是非常的广泛,稳定性和安全性也非常好,经历了无数大小公司的验证.仅能够安装使用是远远不够的,MySQL 在使用中需要进行不断的调整参数或优化设 ...

  8. JVM调优参数、方法、工具以及案例总结

    这种文章挺难写的,一是JVM参数巨多,二是内容枯燥乏味,但是想理解JVM调优又是没法避开的环节,本文主要用来总结梳理便于以后翻阅,主要围绕四个大的方面展开,分别是JVM调优参数.JVM调优方法(流程) ...

  9. MySQL调优系列基础篇

    前言 有一段时间没有写博客了,整天都在忙,上班,录制课程,恰巧最近一段时间比较清闲,打算弄弄MYSQL数据库. 关于MySQL数据库,这里就不做过多的介绍,开源.免费等特性深受各个互联网行业喜爱,尤其 ...

随机推荐

  1. zhuang 定制iOS 7中的导航栏和状态栏

    近期,跟大多数开发者一样,我也正忙于对程序进行升级以适配iOS 7.最新的iOS 7外观上有大量的改动.从开发者的角度来看,导航栏和状态栏就发生了明显的变化.状态栏现在是半透明的了,这也就意味着导航栏 ...

  2. underscorejs

    Underscore是一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象.它是这个问题的答案:“如果我在一个空白的HTML页面前坐下, 并希 ...

  3. PHP世纪万年历

    <?  //世纪万年历  #这是唯一的设置-请输入php文件的位置  $file="http://192.168.1.168/php/rl/s2m.php";  //#农历每 ...

  4. Android菜鸟成长记1--环境的搭配和第一个项目的构建

    一.配置Android环境 1.下载JavaJDK的本地,然后拷贝出来(因为Android实在java的基础上开发的,所以要先配置java环境) 2.java环境变量的配置 配置方法(我的电脑上-&g ...

  5. 校验日期函数的js

    /判断输入内容是否为空 function IsNull(){ var str = document.getElementById('str').value.trim(); if(str.length= ...

  6. 简单介绍Android应用特色及详解四大组件

    Android应用特色 Android主要有什么特色呢,有以下几个方面来体现: 四大组件 丰富的系统控件 SQLite数据库等持久化技术 地理位置定位 强大的多媒体 传感器 1,四大组件 Androi ...

  7. Ajax2

    一.完整版Ajax $.ajax({ url: "Ashxs/Login.ashx", data: { "name": name, "pwd" ...

  8. redis学习(二) Redis Hash

    Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿). redis ...

  9. jQuery.cookie

    了解cookie先了解一下知识点: Navigator (一般是浏览器)对象包含有关浏览器的信息. Navigator userAgent:是一个只读字符串,声明了浏览器用于HTTP请求的用户代理头的 ...

  10. margin设置为百分比的含义

    <!DOCTYPE html> <html> <head> <title>magin为百分比</title> </head> & ...