咱们来看一下mysql的配置,mysql的配置文件咱们把它放在了/etc/my.cnf,那咱们核心部分是[mysqld]php
[mysqld]mysql
port = 3306 它的端口portsql
socket = /tmp/mysql.sock 监听的socketshell
skip-locking 是否要过滤掉这个lock,缓存
key_buffer_size = 256M 很关键的内存设置,主要用来索引块的缓冲的,增长它能够增长出来索引的速度,那好比说对于全部的读 ,多重的写,那这个数值并非越大越好,它也有必定的范围,那好比说咱们1G的内存,你给它搞成256M就足够了,固然也是根据具体用的状况来划分适合的大小,那么怎么去划分适合的大小呢,就是mysql的调优,怎么样去调这个内存的大小(5758的帖子)socket
max_allowed_packet = 1M 容许最大的包,那这个用在什么状况下呢,每每用在mysql的一个WEB管理工具叫作phpmyadmin,咱们能够再那个上面去导入一些包,一些文件ide
table_open_cache = 256它表示全部的线程,打开表的数量工具
sort_buffer_size = 1M 用来排序的缓冲区大小,那咱们这个mysql它搜素语句里面会有一些排序,就像咱们shell去排序数字队列的顺序同样,那他排序的时候占用多大内存呢1M就够了,固然也根据你具体用的,固然这是针对于一个线程来讲的,一个线程独占这一个buffer_sizespa
read_buffer_size = 1M 读的时候有一个缓冲区线程
read_rnd_buffer_size = 4M 这个是读随机的
myisam_sort_buffer_size = 64M 这个是针对myisam这个引擎来讲的,其实咱们mysql经常使用的引擎有两种,一种是myisam,一个是inodb
thread_cache_size = 8他表示缓存可重用的线程数,那这个跟我们CPU的核数有关系通常你的CPU呢是几核那么这个写成几就能够了
query_cache_size= 16M 这个是查询的缓存大小,我们去查询的一个搜索语句确定会出来一些结果,那我能够把咱们的结果暂存在内存里,下次再查直接拿出来就是了,这个就是存放那一部分查询结果的
thread_concurrency = 8 这个也是跟CPU的核数有关系,他呢就是最大迸发线程数,通常是逻辑CUP的数量*2,好比你是4核*2=8 那你能够把他写成8
#innodb_log_file_size = 64M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
这个是innodb相关的了,假如用innodb那就去配置一下,那还有一些可能会用到的
log-bin=mysql-bin 配置它的二进制日志的,后面mysql主从复制的时候会打开这个配置
interactive_timeout=8
wait_timeout=8 这两个配置每每是一块配置才能生效的,这个数值依赖上面的数值咱们会去设置一个wait_timeout由于客户端过来查询的mysql它可能会有一些sleep的状态,当他链接处理完以后,它不会立马断开,他会先暂时保持链接,可是mysql是有链接数限制的它不能超过多少若是超过了这个链接数他就会连不上,因此说咱们有必要把已经完成的链接数自动的让她断开链接,因此wait_timeout这个参数仍是挺有用的
long_querytime=1 关于慢查询的好比说我超过1秒就要去记录这个日志,而后记录日志的路径
log_slow_queries=/data/mysql/slow.log 这个是很是有用的,由于咱们去作调优的时候这个参考依据,咱们每每根据慢查询的日志进行判断