mysql5.6.10的性能优化

标签: mysql5 性能优化 | 发表时间:2016-07-29 18:42 | 作者:liming495
出处:http://www.iteye.com

测试配置脚本时使用如下命令:

rm -rf  /var/log/mysqld.log    

/usr/local/mysql/bin/mysqld_safe --log-error=/var/log/mysqld.log

vi /var/log/mysqld.log

然后查看 /var/log/mysqld.log就能看出来为什么mysql没有正常启动了。

 

 

vi /etc/my.cnf

在[mysqld]配置节下添加:

 
[mysqld]         

#myslqd服务运行时的端口号
port=3306

#socket文件是在Linux环境下特有的,用户的客户端软件连接可以不通过TCP/IP网络而直接使用unix socket连接到Mysql。
socket=/tmp/mysql.sock

#避免Mysql的外部锁定,减少出错几率,增强稳定性。
skip-external-locking

#禁止MySql对外部连接进行DNS解析,使用这一选项可以消除MySQL进行NDS解析的时间。但需要注意的是:如果开启该选项,则所有远程主机连
接授权都要使用IP地址方式了,否则MYSQL将无法正常处理连接请求。
skip-name-resolve

#back_log参数的值指出在MySQL暂时停止响应新请求之前,短时间内的多少个请求可以被存在对堆栈中,如果系统短时间内有很多连接,则需>要增大该参数的值,该参数值指定到来的TCP/IP连接的监听队列的大小。不同的操作系统在这个队列的大小有自己的限制,如果试图将back_log设定得高于操作系统的限制将是无效的,其默认值为50,对于LINUX系统而言,推荐设置为小于512的整数。
back_log=384

#索引缓冲区大小,增加它可得到更好的索引处理性能,对于内存在4GB左右的服务器,该参数可设置为256M或384M。如果该参数值设置的过大>反而会使服务器的整体效率降低。
key_buffer_size=384M

#设定在网络传输中一次消息传输量的最大值,系统默认值为1MB,最大值是1GB,必须设定为1024的倍数,单位为字节。
max_allowed_packet=4M

#设置MySQL每个线程的堆栈大小,默认值足够大,可满足普通操作。可设置范围为128KB至4GB,默认192K。
thread_stack=256k


#设定查询排序时所能使用的缓冲区大小,系统默认大小为2MB,从5.1.23版本开始,在除了WINDOWS 之外的64位平台上可以4GB的限制。该参数
对应的分配内在是每个连接独占的,如果有100个连接,那么实际分配的总排序缓冲区大小为100*6=600MB,那么对于内存4GB左右的服务器来>说,推荐将其设置为6MB-8MB。
sort_buffer_size=6M

#读查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内在也是每个连接独享。
read_buffer_size=4M


#设置Thread Cache池中可以缓存的连接池线程最大数量,可设置为0-16384,默认为0。1GB内存我们配置为8,2GB内存我们配置为16,4GB或4GB以上内在我们配置为64。
thread_cache_size=64
#指定Mysql查询缓冲区的大小,可以通过在Mysql控制台观察,如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况,如果
Qcache_hits的值非常大,则表明查询缓冲使用的非常频繁
query_cache_size=64M

#设置内在临时表最大值,如果超过该值,则会将临时表写入磁盘,其范围为1KB至4GB。
tmp_table_size=256M

#指定MYSQL允许的最大连接进程数,如果在访问程序时经常出现TOO MANY CONNECTIONS的错误提示,则需要增大该参数值。
max_connections=5000


#指定一个请求的最大连接时间,对于4GB左右内在的服务器来说,可以将其设置为5-10
wait_timeout=120

#该参数取值为服务器逻辑CPU数量*2,比如,服务器有两个物理CPU,每个物理CPU支持HT超线程,所以实际取值4*2=8,这也是目前双四核主流
服务器的配置。
thread_concurrency=8

#开启该选项可以彻底关闭MYSQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MYSQL的数据库服务器,则不要开启该选项,否则>将无法正常连接。
skip-networking


innodb_flush_log_at_trx_commit
#抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)
硬盘,这是很费时的。特别是使用电池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的>,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安>全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
innodb_flush_log_at_trx_commit=2

#这是 InnoDB 存储引擎的事务日志所使用的缓冲区。类似于 Binlog Buffer,InnoDB 在写事务日志的时候,为了提高性能,也是先将信息写>入 Innofb Log Buffer 中,当满足 innodb_flush_log_trx_commit 参数所设置的相应条件(或者日志缓冲区写满)之后,才会将日志写到文>件(或者同步到磁盘)中。可以通过 innodb_log_buffer_size 参数设置其可以使用的最大内存空间。
innodb_log_buffer_size=2M

#这个数字要根据实际的情况来设定,但对于大多数的情况,是一个比较合适的设置
innodb_thread_concurrency=8

#tmp_table_size 的默认大小是 32M。如果一张临时表超出该大小,MySQL产生一个 The table tbl_name is full 形式的错误,如果你做很多
高级 GROUP BY 查询,增加 tmp_table_size 值。
tmp_table_size=64M

#随机读取数据缓冲区使用内存(read_rnd_buffer_size):和顺序读取相对应,当 MySQL 进行非顺序读取(随机读取)数据块的时候,会利用>这个缓冲区暂存读取的数据。如根据索引信息读取表数据,根据排序后的结果集与表进行Join等等。总的来说,就是当数据块的读取需要满足>一定的顺序的情况下,MySQL 就需要产生随机读取,进而使用到 read_rnd_buffer_size 参数所设置的内存缓冲区。
read_rnd_buffer_size=16M

#你最好在定义数据库命名规则的时候就全部采用小写字母加下划线的组合,而不使用任何的大写字母。
lower_case_table_names=1

#设置校验模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES


#默认配置没开查询缓存哦亲
explicit_defaults_for_timestamp

 

功能:

#关闭MYSQL日志

 
执行:
/usr/local/mysql/bin/mysql -u root -p
输入密码,登陆到mysql,然后执行
reset master;
退出后执行:
vi /etc/my.cnf
查找
log-bin=mysql-bin binlog_format=mixed
再这两行前面加上#,将其注释掉,再执行重启mysql命令
这样就关闭了mysql日志了
/etc/init.d/mysql restart
 


已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [mysql5 性能优化] 推荐:

[转]MySQL5字符集支持及编码研究

- - 小彰
对于MySQL5字符集和编码的研究起源于在近期开发过程中的两个异常. 通过查看项目使用的数据库,发现发生问题的数据表的编码是utf8,而该表中的SNAPURL的编码却被设置成gbk,这应该就是造成上述问题的原因. 将表中编码为gbk的列修改为utf8后,异常消失. 1、MySQL5的字符集支持. MySQL5.1中的字符集支持包括在MyISAM、MEMORY和InnoDB存储引擎中.

MySQL性能优化

- sun - IT程序员面试网
在笔试面试中,尤其是像百度,淘宝这些数据量非常大,而且用LAMP架构的公司,数据库优化方面就显得特别重要了. 此外,除了数据库索引之外,在LAMP结果如此流行的今天,数据库(尤其是MySQL)性能优化也是海量数据处理的一个热点. 下面就结合自己的经验,聊一聊MySQL数据库优化的几个方面. 首先,在数据库设计的时候,要能够充分的利用索引带来的性能提升,至于如何建立索引,建立什么样的索引,在哪些字段上建立索引,上面已经讲的很清楚了,这里不在赘述.

Hebernate 性能优化

- - 企业架构 - ITeye博客
文章分为十三个小块儿对Hibernate性能优化技巧进行总结性分析,分析如下:. 一、在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate处理大数 据量的,可以使用session. clear()或者session. evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象.

Hbase 性能优化

- - CSDN博客云计算推荐文章
因 官方Book Performance Tuning部分章节没有按配置项进行索引,不能达到快速查阅的效果. 所以我以配置项驱动,重新整理了原文,并补充一些自己的理解,如有错误,欢迎指正. 默认值:3分钟(180000ms). 说明:RegionServer与Zookeeper间的连接超时时间.

JavaScript性能优化

- - ITeye博客
互联网泡沫让投资者长了记性:态度更加谨慎.         如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度. 这种情况下决定程序速度的另一个重要因素就是代码本身. 在这里我们会分门别类的介绍JavaScript性能优化的技巧,并提供相应的测试用例,供大家在自己使用的浏览器上验证, 同时会对特定的JavaScript背景知识做一定的介绍.

Mysql性能优化

- - 数据库 - ITeye博客
MySQL性能优化.   性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间. 性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等.   数据库管理人员可以使用SHOW STATUS语句来查询MySQL数据库的性能. 语法:SHOW STATUE LIKE ‘value’;其中value参数是常用的几个统计参数.

Linux 性能优化

- - Gsion&apos;s Blog
1) Linux Proc文件系统,通过对Proc文件系统进行调整,达到性能优化的目的. 2) Linux性能诊断工具,介绍如何使用Linux自带的诊断工具进行性能诊断. 加粗斜体表示可以直接运行的命令. 二、/proc/sys/kernel/优化. 该文件有一个二进制值,该值控制系统在接收到ctrl+alt+delete按键组合时如何反应.

hbase性能优化

- - CSDN博客推荐文章
  当你调用create方法时将会加载两个配置文件:hbase-default.xml and hbase-site.xml,利用的是当前的java类路径, 代码中configuration设置的这些配置将会覆盖hbase-default.xml和hbase-site.xml中相同的配置,如果两个配置文件都存在并且都设置好了相应参上面的属性下面的属性即可.

oracle性能优化

- - 行业应用 - ITeye博客
                              oracle数据库的性能优化. 主要从内部存储结构,逻辑分区,表结构范式,sql语句优化. hibernate处的层次更高,主要从缓存,和sql语句的使用.     对于ORACLE数据库的数据存取,主要有四个不同的调整级别,第一级调整是操作系统级包括硬件平台,第二级调整是ORACLE RDBMS级的调整,第三级是数据库设计级的调整,最后一个调整级是SQL级.

mssql性能优化

- - 数据库 - ITeye博客
一、             分析阶段. 一般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性、可用性、可靠性、安全性需求往往吸引了我们大部分的注意力,但是,我们必须注意,性能是很重要的非功能性需求,必须根据系统的特点确定其实时性需求、响应时间的需求、硬件的配置等. 另一方面,在分析阶段应该根据各种需求区分出系统的类型,大的方面,区分是OLTP(联机事务处理系统)和OLAP(联机分析处理系统).