mysql数据库内存利用率过高的原因和解决方案

InnoDB内存参数优化
适当增大参数innodb_buffer_pool_size值
innodb_buffer_pool_size决定InnoDB存储引擎表数据与索引数据的缓存区(内存区)大小。在保障操作系统及其他程序有足够的内存可用的情况下,该值越大,性能越好。

适当增大参数innodb_log_buffer_size值
innodb_log_buffer_size决定InnoDB重做日志缓存池的大小。对于一个产生大量记录的事务(如更新、插入、删除等操作),可以增大innodb_log_buffer_size来提高事务处理的性能。

mysql并发参数优化
适当增大参数max_connections值

max_connections最大并发连接数,增大该值可以提高并发连接。

适当增大参数thread_cache_size值
thread_cache_size用于加快连接数据库的速度。mysql会缓存一定数量的客户服务线程以备重用,通过参数thread_cache_size可控制mysql缓存客户服务线程的数量。

按需调大或调小参数innodb_lock_wait_timeout值
innodb_lock_wait_timeout控制innodb事务等待行锁的时间。 - 对于快速处理的sql语句,可以将行锁的等待时间调小,以避免事务长时间的挂起。 - 对于后台运行时间的批处理操作,可以将行锁等待时间调大,以避免发生大的回滚操作。