mysql 服务器的优化(硬件&软件)

服务器硬件的优化:

服务器的硬件性能直接决定着 MySQL数据库的性能。硬件的性能瓶颈,直接决定MySQL数据库的运行速度和效率。对服务器硬件的优化,可以从以下几个方面进行。

(1)配置较大的内存。足够大的内存,是提高MySQL数据库性能的方法之一。内存的速度比磁盘I/O快得多,可以通过增加系统的缓冲区容量,使数据在内存停留的时间更长,以减少磁盘I/O。

(2)配置高速磁盘系统,以减少读盘的等待时间,提高响应速度。

(3)合理分布磁盘1/O。把磁盘I/O分散在多个设备上,以减少资源竞争,提高并行操作能力。

(4)配置多处理器。 MySQL是多线程的数据库,多处理器可同时执行多个线程。

MySQL参数的优化:

通过优化MySQL的参数可以提高资源利用率,从而达到提高MySQL服务器性能的目的。MySQL服务器的配置参数都在my.cnf或者my.ini文件的[MySQLd]组中。下面介绍几个对性能影响比较大的参数。

(1) key_buffer_size:表示索引缓冲区的大小。增加索引缓冲区可以得到更好处理的索引(对所有读和多重写)。当然,这个值也不是越大越好,它的大小取决于内存的大小。如果这个值太大,导致操作系统频繁换页,也会降低系统性能。

(2) table_cache:表示同时打开的表的个数。这个值越大,能够同时打开的表的个数越多。这个值不是越大越好,因为同时打开的表太多会影响操作系统的性能。

(3) query_cache_size:表示查询缓冲区的大小。该参数需要和query_cache_type配合使用。当query_cache_type=0时,所有的查询都不使用查询缓冲区;当query_cache_type=1时,所有的查询都将使用查询缓冲区,除非在查询语句中指定SQL_NO_CACHE,如SELECT SQL_NO_CACHE * FROM tbl_name:当query_cache_type=2时,只有在查询语句中使用SOL_CACHE关键字,查询才会使用查询缓冲区。使用查询缓冲区可以提高查询的速度,这种方式只适用于修改操作少且经常执行相同的查询操作的情况。

(4) sort_buffer_size:表示排序缓存区的大小。这个值越大,进行排序的速度越快。

(5) read_buffer_size:表示每个线程连续扫描时为扫描的每个表分配的缓冲区的大小(字节)。当线程从表中连续读取记录时需要用到这个缓冲区。SET SESSION read_bufferr_size=n可以临时设置该参数的值。

(6) read_rnd_butfer_size:表示为每个线程保留的缓冲区的大小,与read_buffer_size相似,但它主要用于存储按特定顺序读取出来的记录。也可以用SET SESSION read_rnd_buffer_size=n来临时设置该参数的值。如果频繁进行多次连续扫描,可以增加该值。

(7) inno_db_buffer_pool_size:表示InnoDB类型的表和索引的最大缓存。这个值越大,查询的速度就会越快。但是这个值太大会影响操作系统的性能。

(8) max_connections:表示数据库的最大连接数。这个连接数不是越大越好,因为这些连接会浪费内存的资源,过多的连接可能还会导致MySQL服务器僵死。

(9) interactive_timeout:表示服务器在关闭连接前等待行动的秒数。

(10) thread_cache_size:表示可以复用的线程的数量。如果有很多新的线程,为了提高性能,可以增大该参数的值。

(11) wait_timeout:表示服务器在关闭一个连接时等待行动的秒数。默认数值是28800.总之,合理地配置这些参数可以提高MySQL服务器的性能。除上述参数以外,还有innodb_log_buffer_size、innodb_log_fle_size等参数。配置完参数以后,需要重新启动MySQL服务才会生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值