当前位置: 首页 > news >正文

(转)Mysql的优化设置

(linux下的参数)

打开/etc/my.cnf文件,修改以下设置,如果没有,可手动添加。调整设置时,请量力而行,这与你的服务器的配置有关,特别是内存大小。以下设置比较适合于1G内存的服务器,但并不绝对。

#指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用show status like 'key_reads'获得)。key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是MyISAM表,也要使用该值。可以使用检查状态值created_tmp_disk_tables得知详情。
key_buffer = 384M

#要求MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。默认数值是50
back_log = 200

#一个包的最大尺寸。消息缓冲区被初始化为net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。缺省地,该值太小必能捕捉大的(可能错误)包。如果你正在使用大的BLOB列,你必须增加该值。它应该象你想要使用的最大BLOB的那么大。
max_allowed_packet = 4M

#允许的同时客户的数量。增加该值增加 mysqld要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 链接过多,请联系空间商 错误。 默认数值是100
max_connections = 1024

#指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果你发现open_tables等于table_cache,并且opened_tables在不断增长,那么你就需要增加table_cache的值了(上述状态值可以使用show status like 'Open_tables'获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。
table_cache = 512

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

#当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果你认为连续扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。
read_buffer_size = 4M

#加速排序操作后的读数据,提高读分类行的速度。如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。仍然不明白这个选项的用处……
read_rnd_buffer_size = 8M

#用于REPAIR TABLE。不明白这个选项的用处,百度上找到的设置方向也是五花八门,有128M、64M、32M等,折中选一个。
myisam_sort_buffer_size = 64M

#可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。
thread_cache_size = 128

#查询结果缓存。第一次执行某条SELECT语句的时候,服务器记住该查询的文本内容和它返回的结果。服务器下一次碰到这个语句的时候,它不会再次执行该语句。作为代替,它直接从查询缓存中的得到结果并把结果返回给客户端。
query_cache_size = 32M

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

#设置超时时间,能避免长连接
wait_timeout = 120

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

相关文章:

  • php 部署在iis HTTP 错误 500.0 - Internal Server Error 无法在fastCGI应用程序配置中找到handler scriptProcessor...
  • 面向对象
  • 课上测试
  • 合成
  • 写出稳定的Modbus代码之点滴经验
  • TMainMenu 类[四] - 所有可选的快捷键列表
  • 圆方树
  • JS简单表单验证
  • 创建并运行HelloWorld Java项目和类
  • Lp空间
  • 【转】简单的计算机英语列表
  • (4)logging(日志模块)
  • 自己动手实现java数据结构(二) 链表
  • Encoding Convert
  • 10月18日 JS begant
  • php的引用
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 0x05 Python数据分析,Anaconda八斩刀
  • 4. 路由到控制器 - Laravel从零开始教程
  • Java深入 - 深入理解Java集合
  • java小心机(3)| 浅析finalize()
  • jquery ajax学习笔记
  • JS基础之数据类型、对象、原型、原型链、继承
  • Map集合、散列表、红黑树介绍
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 从0到1:PostCSS 插件开发最佳实践
  • 翻译:Hystrix - How To Use
  • 关于使用markdown的方法(引自CSDN教程)
  • 开源SQL-on-Hadoop系统一览
  • 如何在 Tornado 中实现 Middleware
  • 世界上最简单的无等待算法(getAndIncrement)
  • 无服务器化是企业 IT 架构的未来吗?
  • 学习使用ExpressJS 4.0中的新Router
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 白色的风信子
  • gunicorn工作原理
  • puppet连载22:define用法
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​卜东波研究员:高观点下的少儿计算思维
  • ​决定德拉瓦州地区版图的关键历史事件
  • ​业务双活的数据切换思路设计(下)
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #NOIP 2014#Day.2 T3 解方程
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • $.ajax()方法详解
  • (02)vite环境变量配置
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (六)软件测试分工
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET Micro Framework初体验