优化mysql服务器

优化MySQL服务器
最大连接数:

max_connections=2000

默认:max_connections=151

指定MySQL可能的连接数量

#指定MySQL可能的连接数量。当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花些时间(尽管很短)检查连接并且启动一个新线程。

#back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。

back_log=1024

默认:back_log=80

索引块的缓冲区大小

key_buffer_size = 32M

#索引块的缓冲区大小,对MyISAM表性能影响最大的一个参数.决定索引处理的速度,尤其是索引读的速度。默认值是8M,通过检查状态值Key_read_requests

#和Key_reads,可以知道key_buffer_size设置是否合理

默认:key_buffer_size=8M

MySQL执行排序使用的缓冲大小

sort_buffer_size = 16M

#是MySQL执行排序使用的缓冲大小。如果想要增加ORDER BY的速度,首先看是否可以让MySQL使用索引而不是额外的排序阶段。

#如果不能,可以尝试增加sort_buffer_size变量的大小。

默认:sort_buffer_size=256K

MYSQL读入缓冲区大小

read_buffer_size = 64M

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

#如果对表的顺序扫描请求非常频繁,并且你认为频繁扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。

默认:read_buffer_size=64K

Join操作缓存大小

join_buffer_size = 16M

#应用程序经常会出现一些两表(或多表)Join的操作需求,MySQL在完成某些 Join 需求的时候(all/index join),为了减少参与Join的“被驱动表”的

#读取次数以提高性能,需要使用到 Join Buffer 来协助完成 Join操作。当 Join Buffer 太小,MySQL 不会将该 Buffer 存入磁盘文件,

#而是先将Join Buffer中的结果集与需要 Join 的表进行 Join 操作,

#然后清空 Join Buffer 中的数据,继续将剩余的结果集写入此 Buffer 中,如此往复。这势必会造成被驱动表需要被多次读取,成倍增加 IO 访问,降低效率。

默认:join_buffer_size=256K

MySQL的随机读缓冲区大小

read_rnd_buffer_size = 32M

#是MySQL的随机读缓冲区大小。当按任意顺序读取行时(例如,按照排序顺序),将分配一个随机读缓存区。进行排序查询时,MySQL会首先扫描一遍该缓冲,以避免磁盘搜索,

#提高查询速度,如果需要排序大量数据,可适当调高该值。但MySQL会为每个客户连接发放该缓冲空间,所以应尽量适当设置该值,以避免内存开销过大。

默认:read_rnd_buffer_size=256K

缓存排序索引大小

myisam_sort_buffer_size = 256M

#当对MyISAM表执行repair table或创建索引时,用以缓存排序索引;设置太小时可能会遇到” myisam_sort_buffer_size is too small”

myisam_sort_buffer_size=102M

缓存空闲的线程以便不被销毁

thread_cache_size = 384

#thread_cahe_size线程池,线程缓存。用来缓存空闲的线程,以至于不被销毁,如果线程缓存在的空闲线程,需要重新建立新连接,

#则会优先调用线程池中的缓存,很快就能响应连接请求。每建立一个连接,都需要一个线程与之匹配。

默认:thread_cache_size=10

set global max_connections=2000;#设置最大连接数
set global key_buffer_size=51210241024;#设置索引块缓冲区大小
set global sort_buffer_size=12810241024;#MySQL执行排序使用的缓冲大小
set global read_buffer_size=6410241024;#MYSQL读入缓冲区大小
set global join_buffer_size=12810241024;#Join操作缓存大小
set global read_rnd_buffer_size=3210241024;#MySQL的随机读缓冲区大小
set global myisam_sort_buffer_size=25610241024;#缓存排序索引大小
set global thread_cache_size=384;#缓存空闲的线程以便不被销毁
set global innodb_buffer_pool_size=100010241024;#内存

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL服务器优化需要从以下几个方面入手: 1. 硬件优化:包括CPU、内存、磁盘等硬件设备的优化,例如增加内存、使用SSD硬盘等。 2. 数据库设计优化:包括表结构设计、索引设计、查询语句优化等。 3. MySQL参数优化:包括MySQL的配置参数优化,例如缓存大小、连接数、线程池等。 4. 查询优化:包括查询语句的优化、使用索引等。 5. 高可用性和负载均衡:包括使用主从复制、读写分离、负载均衡等技术来提高MySQL的可用性和性能。 下面是一些MySQL服务器优化的具体方法和策略: 1. 硬件优化: - 增加内存:MySQL的性能和可用性与内存有很大关系,因此增加内存可以提高MySQL的性能和可用性。 - 使用SSD硬盘:SSD硬盘的读写速度比传统机械硬盘快很多,可以提高MySQL的性能。 2. 数据库设计优化: - 表结构设计:合理的表结构设计可以提高MySQL的性能,例如避免使用过多的关联表、避免使用过多的字段等。 - 索引设计:合理的索引设计可以提高MySQL的查询性能,例如使用联合索引、避免使用过多的索引等。 - 查询语句优化:避免使用SELECT *等不必要的查询语句,使用JOIN语句时尽量使用INNER JOIN等性能更好的语句。 3. MySQL参数优化: - 缓存大小:根据实际情况调整缓存大小,例如innodb_buffer_pool_size、query_cache_size等。 - 连接数:根据实际情况调整连接数,例如max_connections等。 - 线程池:使用线程池可以提高MySQL的性能和可用性,例如使用线程池插件等。 4. 查询优化: - 查询语句优化:避免使用SELECT *等不必要的查询语句,使用JOIN语句时尽量使用INNER JOIN等性能更好的语句。 - 使用索引:合理使用索引可以提高MySQL的查询性能,例如使用联合索引、避免使用过多的索引等。 5. 高可用性和负载均衡: - 主从复制:使用主从复制可以提高MySQL的可用性,例如使用MySQL Replication等。 - 读写分离:使用读写分离可以提高MySQL的性能,例如使用MySQL Proxy等。 - 负载均衡:使用负载均衡可以提高MySQL的性能和可用性,例如使用HAProxy等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值