Linux记录-mysql参数优化

1.参数优化
show variables like ''
/etc/my.cnf
[mysqld]
Max_connections =1024 #请求的最大连接数
back_log =1024 #mysql能暂存的连接数量,当连接数达到max_connections时新连接会被存储到堆栈中
wait_timeout=100 #关闭一个非交互的连接之前所要等待的秒数
interactive_timeout=7200 #设置的时间就会自动断掉
key_buffer_size=128M #索引缓冲区的大小,决定索引处理的速度
query_cache_size=256M #查询缓存
query_cache_type=1 #缓存类型,1为缓存所有
max_connect_errors=20 #阻止过多尝试失败的客户端连接
sort_buffer_size=2M #每个需要进行排序的线程分配该大小的一个缓冲区
max_allowed_packet=32M #server接受的数据包大小
join_buffer_size=2M #表间关联缓存的大小
thread_cache_size = 300 #服务器线程缓存
innodb_buffer_pool_size= 2048M #InnoDB使用该参数指定大小的内存来缓冲数据和索引
innodb_flush_log_at_trx_commit =2 #主要控制了innodb将log buffer中的数据写入日志文件并flush磁盘的时间点,取值分别为0、1、2三个。0,表示当事务提交时,不做日志写入操作,而是每秒钟将log buffer中的数据写入日志文件并flush磁盘一次;1,则在每秒钟或是每次事物的提交都会引起日志文件写入、flush磁盘的操作,确保了事务的ACID;设置为2,每次事务提交引起写入日志文件的动作,但每秒钟完成一次flush磁盘操作。
innodb_thread_concurrency = 0 #innodb线程的并发数量,默认值为0表示不限制
innodb_log_buffer_size=32M #此参数确定些日志文件所用的内存大小,以M为单位。缓冲区更大能提高性能,对于较大的事务,可以增大缓存大小。
innodb_log_file_size = 50M #此参数确定数据日志文件的大小,以M为单位,更大的设置可以提高性能.
read_buffer_size = 1M #读入缓冲区大小
read_rnd_buffer_size = 16M #MySql 的随机读(查询操作)缓冲区大小
bulk_insert_buffer_size = 64M #批量插入数据缓存大小,可以有效提高插入效率,默认为8M
log-bin=/usr/local/mysql/data/mysql-bin
binlog_cache_size = 2M #为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存, 提高记录bin-log的效率
max_binlog_cache_size = 8M //表示的是binlog 能够使用的最大cache 内存大小
max_binlog_size= 512M //指定binlog日志文件的大小,如果当前的日志大小达到max_binlog_size,还会自动创建新的二进制日志。你不能将该变量设置为大于1GB或小于4096字节。默认值是1GB。在导入大容量的sql文件时,建议关闭sql_log_bin,否则硬盘扛不住,而且建议定期做删除。
expire_logs_days = 7 //定义了mysql清除过期日志的时间。二进制日志自动删除的天数。默认值为0,表示“没有自动删除”。
mysqladmin flush-logs 也可以重新开始新的binarylog
MYSQL性能优化的最佳20+条经验
1. 为查询缓存优化你的查询-大多数的MySQL服务器都开启了查询缓存
2. EXPLAIN 你的 SELECT 查询
3. 当只要一行数据时使用 LIMIT 1
4. 为搜索字段建索引
5. 在Join表的时候使用相当类型的例,并将其索引
6. 避免 SELECT *
7. 永远为每张表设置一个I
8. 尽可能的使用 NOT NULL

posted @ 2019-07-10 22:21  信方  阅读(1469)  评论(0编辑  收藏  举报