l通用类:

key_buffer_size

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

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

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

table_open_cache

含义:为所有线程打开表的数量。

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

建议:我们有300多个表的话,大约2048差不多了。

thread_cache_size

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

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

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

query_cache_size

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

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

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

query_cache_limit

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

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

建议:设置为1M即可。

query_cache_min_res_unit

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

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

建议:如果SQL返回的结果集都很小的话,参数也可以调小一点,避免内存浪费。如果结果集大部分都大于4KB的话,则考虑加大参数。

back_log

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

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

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

sort_buffer_size

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

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

lMyISAM类:

myisam_sort_buffer_size

MyISAM表发生变化时重新排序所需的缓冲。一般64M足矣。

lInnoDB类:

innodb_buffer_pool_size

对InnoDB的效率影响很大。因为InnoDB会把尽可能多的数据和索引缓存在缓冲区,这个类似与Oracle的Buffer Pool:如果只采用InnoDB,可以把这个参数调大一点,大约内存的70%左右。

当然,如果数据量不会暴增并且不是特别大,这个参数还是不要太大了,浪费空间。

innodb_additional_pool_size

对数据库性能影响不是很大,至少内存足够的机器上不会有什么影响。

innodb_log_file_size

在高写入负载尤其是数据集很大的时候,这个值非常重要,值越高性能越好,不过可能会增加数据恢复的时候。我设置为128M。

innodb_log_buffer_size

默认的设置在中等强度的写入负载及短事物处理时,性能还可以。但是存在大量更新操作或者负载较大时,就要慢慢增加这个参数的值了。不过不要设置太大,会浪费内存。它每秒都会刷新一次,所以不用设置超过1s所需的内存空间,16M足够了。

innodb_flush_logs_at_trx_commit

这个参数对InnoDB及其重要,设置不好的话会比MyISAM慢1000倍!默认是1,这就是说每次更新事务都会被提交到磁盘,这是非常消耗资源的,硬盘和内存的速度是明显数量级的差距。

设置为0是最快的,但是很不安全,全部在缓存中,一掉电全没了。

设置为1很不好,每次都去写硬盘,没有必要。

设置为2是比较好的,日志不刷新到磁盘上,只刷新到操作系统缓存上。然后每秒钟写缓存。相对于现在数据库每秒4K条左右的SQL,性能已经可以提高不少。

mysql优化参数设置_MySQL服务优化参数设置参考相关推荐

  1. mysql my.cnf 配置_MySQL——my.cnf参数设置说明

    [mysqld] server-id=513306# Mysql唯一标识,一个集群中唯一: port=3306# 服务端口,默认3306 user=mysql # 启动用户,建议用户mysql bin ...

  2. mysql+date+范围+性能_MySQL性能优化的最佳20+条经验

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数据 ...

  3. mysql 性能 比较好_MySQL性能优化的最佳20+条经验

    今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操作数 ...

  4. mysql+性能+计算列_MYSQL性能优化的最佳20+条经验

    当你查询表的有些时候,你已经知道结果只会有一条结果,但因为你可能需要去fetch游标,或是你也许会去检查返回的记录数. 在这种情况下,加上 LIMIT 1 可以增加性能.这样一样,MySQL数据库引擎 ...

  5. mysql数据库优化的作用_MySQL数据库优化总结

    选择适当的字段类型,特别是主键 选择字段的一般原则是保小不保大,能用占用字节小的字段就不用大字段.比如主键, 我们强烈建议用自增类型,不用guid,为什么?省空间啊?空间是什么?空间就是效率!按4个字 ...

  6. mysql 嵌套查询性能_mysql SQL优化之嵌套查询-遁地龙卷风

    (-1) 写在前面 这篇随笔的数据使用的是http://blog.csdn.net/friendan/article/details/8072668#comments里的,里面有一些常见的select ...

  7. mysql增加最大连接数_mysql最大连接数怎么设置

    设置mysql最大连接数的方法:首先打开mysql的控制台:然后输入语句[set GLOBAL max_connections=1000;]即可直接设置最大连接数. 通常,mysql的最大连接数默认是 ...

  8. mysql数据库参数配置_MySQL数据库配置参数优化及参数对应的解释

    Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况,以及机器硬件配置都有关系,优化不可能一次性完成,需要不断的 ...

  9. mysql 线程池大小设置_MySQL线程池参数解析

    线程池是数据库系统非常重要功能,然而MySQL社区版并不包含线程池功能,不过好在MySQL的Percona发行版本提供了这个功能,除此之外,MySQL的企业版也提供线程池,从性价比上说,Percona ...

最新文章

  1. C++知识点47——类继承中的类型转换与访问权限控制(下)
  2. WCF+Nhibernate 序列化的问题。
  3. oracle 的float(b)转
  4. PROTEUS串口仿真遇到的BUG(转载)
  5. 汽车之家10周年办演唱会,厂商们怎么看?
  6. java oracle 图片_JAVA读取Oracle中的blob图片字段并显示
  7. 洛谷.3919.[模板]可持久化数组(可持久化线段树/平衡树)
  8. CCF201803-1 跳一跳
  9. socket上传nsdictionary的json数据异常
  10. leancloud 怎么绑定域名_云引擎支持绑定加速域名 | LeanCloud 八月变化
  11. Dev C++软件的下载安装与使用
  12. 计算机酒店管理论文,计算机专业酒店管理系统毕业论文.doc
  13. 在线问卷调查系统分析与实现
  14. EEGLAB工具箱的下载与安装
  15. fc模拟器安卓版_【SFC】魂斗罗3-异形战争模拟器情怀通关2020_EVOS
  16. Windows徽标键的使用
  17. onedrive电脑手机不同步_关于OneDrive,移动端同步以及显示不及时的问题。
  18. Velocity+IText+Flying-saucer生成pdf文件
  19. pandas相关函数sort_values、字符串处理、index、merge、数据合并cancat、groupby分组统计
  20. iconv()函数转码

热门文章

  1. SAP WebIDE 里开发 SAP UI5 应用时,使用 Ctrl + Space 实现代码自动完成功能
  2. 处理SSL certificate problem self signed certificate
  3. Android日志拦截器,Retrofit2日志拦截器的使用
  4. rds 数据导入mysql_将数据导入到 Amazon RDS 数据库实例
  5. python flask跨域_Flask配置Cors跨域的实现
  6. 二叉树的后序遍历Python解法
  7. java程序一写文件就崩溃_为什么直接修改java的.class文件会导致程序崩溃
  8. java oracle管理系统_哔站播放量高达三百万的Java视频教程,如此惊人,还不来学?...
  9. python一维列表的定义_数据结构-Python 列表(List)
  10. python参数估计_用python求参数估计的置信区间