zfxcms ^回到顶部

您的当前位置:首页 > 最新IT资讯 > MySQL > MySQL优化-配置优化

MySQL优化-配置优化

所属分类: MySQL   2020-03-18 22:29:48  编辑:admin  浏览次数 516 次

说几个常用的配置

my.cnf优化

per_thread_buffers (PGA)

Read_buffer_size  表的顺序扫描,每个线程分配的缓冲区大小  128-256K

Read_rnd_buffer_size 用于表的随机读取,每个线程分配的缓冲区大小  128-256K

Sort_buffer_size  默认2M    需要调整为128-256K

Thread_stack 每个线程的堆栈大小  192K    64位  256K

Join_buffer_size  连接查询的缓冲区大小  128K-256K 

Binlog_cache_size  二进制缓存  事务比较小的时候 1-2M  如果事务比较大,调大这个参数      日志设置

Max_connections 最大连接数   默认100   512-1000左右

global_buffers优化(SGA)

提高查询和更新数据的性能,用于在内存中缓存从数据文件中检索出来的数据块

Innodb_buffer_pool_size  默认128MB   设置物理内存的60%-70%

Innodb_additional_mem_pool_size 存储字典信息和其它内部数据结构  默认8M  修改为16M

innodb_log_buffer_size  事务日志原理是先将信息写入Innodb_log_buf,当日志缓冲区写满或者满足设置的相应条件才会同步文件到磁盘中,默认8M, 16M-64M

Key_buffer_size:索引缓存的大小

Myisam存储引擎中:key_buffer_size 用于设置索引块缓存的大小

Innodb:设置64M

Query_cache_size :

0 禁止缓存 1 启用缓存 2 启用缓存,只缓存SELECT SQL_CACHE。。子句的查询结果集

主要对DDL和DML语句有性能影响

考虑缓存区的维护成本,要考虑查询缓存区的命中率以及内存使用率

Mysql>=5.6  innodb_page_size  数据页默认为16K,  

CPU压力较小    读写操作频繁

8K CPU的压力是16K的1.5-2倍左右,select吞吐量要高于16KB

数据库量级别: GB为单位,数据量在亿级以上,服务器内存在64GB以上

I/O设置优化:

1、RAID  选择合适的磁盘阵列    RAID10 数据读写的可靠性

2、使用操作系统的Symbolic Links分布I/O   将不同数据库的数据库、数据表、索引执行在不同的物理磁盘上

3、Table_cache和临时表的优化

Table_cache  设置缓存表的最大数目   show variables like 'table_cache'   show variables like ‘open_tables’

4G内存   2048   加快执行速度,会让产生死锁的几率增加

临时表的优化:group by order by distinct union from子查询

Show global status like ‘created_tmp%’;

Max_heap_table_size  数据表的最大长度  存在text/blob字段时会使用磁盘临时表

Tmp_table_size 内存临时表最大值   /tmp   200M 

image.png

我发现一个好用的优化软件,http://tools.percona.com/wizard,试试就知道好,哈哈

image.png

随笔文章检索

随笔文章目录