QQ访问访问

mysql性能调优

学习笔记 2020-05-06 20:49:37 1141 0

【摘要】mysql性能调优,在my.cnf插入以下内容


直接把以下内容,添加到my.cnf中

#禁用dns解析

skip-name-resolve

#wait_timeout针对非交互式连接 ,通过jdbc连接数据库是非交互式连接。

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

wait_timeout = 10

#针对交互式连接,即在mysql_real_connect()函数中使用了CLIENT_INTERACTIVE选项通过mysql客户端连接数据库是交互式连接 

interactive_timeout = 2880000

#来限制并发线程的数量,一旦执行线程的数量达到这个限制,额外的线程在被放置到对队列中之前,会睡眠数微秒

innodb_thread_concurrency=8


#为每个session 分配的内存,在事务过程中用来存储二进制日志的缓存。 提高记录bin-log的效率

binlog_cache_size = 256K

#连接线程的优化

thread_stack =512K

#连表缓冲大小 多表join

join_buffer_size = 8192K

#用户可以创建的内存表(memory table)的大小.这个值用来计算内存表的最大行数值

max_heap_table_size = 1024M

#跳过外部锁定 多进程条件下为MyISAM数据表进行锁定

skip-external-locking

#控制内存最大占用

performance_schema_max_table_instances=400

#代表MySQL可以缓存的表定义的数量

table_definition_cache=400

#参数值的代表MySQL可以缓存的打开表时候的最大文件描述符。

table_open_cache = 1024

#指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_size设置是否合理

key_buffer_size = 512M

#mysql根据配置文件会限制server接受的数据包大小。

#有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败。

max_allowed_packet = 100G

#增加sort_buffer_size 来加速ORDER BY 或者GROUP BY 操作,不能通过查询或者索引优化的。

sort_buffer_size = 2048K

#官方建议使用mysqlpump 通信时缓存数据的大小.

net_buffer_length = 8K

#是MySQL读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,MySQL会为它分配一段内存缓冲区。

read_buffer_size = 2048K

#是MySQL的随机读缓冲区大小,当按任意顺序读取行时(列如按照排序顺序)将分配一个随机读取缓冲区,进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,提高查询速度,如果需要大量数据可适当的调整该值

read_rnd_buffer_size = 1024K

#MySQL重建索引时所允许的最大临时文件的大小

myisam_max_sort_file_size=64G

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

myisam_sort_buffer_size = 64M

#缓存可重用的线程数 通常至少设置为16

#thread_cache_size = 192

#开启查询缓存 mysql8 已放弃 8以下可用

#query_cache_type = 1

#指定MySQL查询结果缓冲区的大小。如果应用程序有大量读,而且没有应用程序级别的缓存,那么这很有用。不过不要设置太大,因为维护它也需要不少开销,这会导致MySQL变慢。

#query_cache_size = 256M

#内部内存临时表的大小

tmp_table_size = 1024M

#如果你的mysql版本高于5.6.6,关于timestamp为null的时候,可能会报错 关闭错误

explicit_defaults_for_timestamp = true

#设置数据库的最大连接数

max_connections = 300

#如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源

back_log = 384

#是一个MySQL中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码的情况

max_connect_errors = 100

#打开文件数量调到最大值

open_files_limit = 65535

#删除mysql的日志文件

log-bin=mysql-bin

#基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR)

binlog_format=mixed

server-id   = 1

#保存日志时间是10天

expire_logs_days = 10

early-plugin-load = ""

#默认innodb家目录

innodb_data_home_dir = /usr/local/mysql/data

#用来指定innodb tablespace文件

innodb_data_file_path = ibdata1:12M:autoextend

#日志组所在的路径,默认为data的home目录

innodb_log_group_home_dir = /usr/local/mysql/data

#用于缓存索引和数据的内存大小

innodb_buffer_pool_size = 4096M

#该参数决定着mysql事务日志文件(ib_logfile0)的大小;

innodb_log_file_size = 1024M

#该参数确保有足够大的日志缓冲区来保存脏数据在被写入到日志文件之前。

innodb_log_buffer_size = 512M

#每次事务提交时MySQL都把log buffer刷到文件系统中去,并且调用文件系统的“flush”操作将缓存刷新到磁盘上去

innodb_flush_log_at_trx_commit = 1

#默认参数:innodb_lock_wait_timeout设置锁等待的时间是50s,一旦数据库锁超过这个时间就会报错

innodb_lock_wait_timeout = 120

#调整脏页 提高刷新脏页面数量和合并插入数量,改善磁盘I/O处理能力

innodb_max_dirty_pages_pct = 90

#参数innodb_write_io_threads  写线程 默认四个,负责数据块的写入

innodb_read_io_threads = 8

#参数innodb_read_io_threads 读线程  默认四个,负责数据块的读取

innodb_write_io_threads = 8






版权归 姚钦鹏博客 所有

本文标题:《mysql性能调优》

本文链接地址:https://www.yaoqinpeng.com/wzxs/224.html

转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^

0

0

上一篇《 mysqldump备份数据库及下载 》 下一篇《 Can't connect to local MySQL server through socket 》
分享到:

暂无评论

评论审核未开启
表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情 表情