数据库参数对mysql性能的影响

参数设置

全局参数:
set globa 参数名=参数值
set @@globa.参数名:=参数值
会话参数:
set [session] 参数名=参数值
set @@session.参数名:=参数值

内存配置相关参数

注:首先需要确定可以使用的内存上限

设置排序缓冲区的大小

命令:sort_buffer_size
意解:当mysql需要排序时,会立即分配此配置设置的内存大小,不管能不能用这么多。例如:当有参数设置 100M 时,有100个排序,那么就会占用将近10G的内存,所以设置此参数,一定要小心。

设置连接缓冲区的大小

命令:join_buffer_size
意解:如果一个查询语句中,有多个连接,那么就会为每一个连接分配此配置设置的内存大小。

设置索引缓冲区的大小

命令:read_rnd_buffer_size
意解:如果查询需要时,才会配置此内存,并且分配需要的内存大小,而不是全部内存。

设置Innodb使用的缓存池大小【重要】

命令:Innodb_buffer_pool_size
意解:这个设置直接影响到效率因素,如果mysql全部的表都使用的是 Innodb 表,我们可以用下列方法计算我们需要设置多少内存:总内存 - (每个线程所需要的内存 * 连接数) - 系统其他程序需要使用的内存

设置Myisam使用的缓存池大小

注: Myisam 表只会缓存索引。
命令:key_buffer_size
意解:这里我们需要注意的是,虽然mysql全部的表都使用的是 Innodb 表,但是系统表仍然是Myisam 表,所以我们还是需要设置此参数。我们可以用以下方式查看 Myisam 索引使用的内存大小。

mysql> select sum(index_length) from information_schema.tables where engine = 'myisam';
I/O配置相关参数
设置Innodb单个事务日志文件的大小

命令:Innodb_log_file_size
意解:当事务提交时,不会直接写到数据库中,而是先写到事务日志文件中,然后再向数据库中持久化。

设置Innodb事务日志的个数【一般不用管】

命令: Innodb_log_files_in_group
意解:因为当向日志文件中记录时,一个文件写满了,自动会创建写一个文件。

设置Innodb事务日志缓冲区的大小

命令:Innodb_log_buffer_size
意解: 当事务提交时,不会直接写到日志文件中,而是先写到缓冲区。一般不用设置的很大(32M~128M),因为每个一秒,就会向日志文件中刷新。

设置Innodb事务日志刷新频繁程度

命令:Innodb_flush_log_at_trx_commit
- 0每秒进行一次 log 写入 cache ,并 flush log 到磁盘,如果进程挂了,会丢失一秒数据
- 1【默认】:在每次事务提交执行 log 写入 cache ,并 flush log 到磁盘,同时也是性能最差
- 2【建议】:每次事务提交,执行 log 数据写入到 cache ,每秒执行一次 flush log 到磁盘,如果进程挂了,不会丢失数据,除非服务器宕机 时,才会丢失一秒数据

设置Innodb的表空间类型

命令:Innodb_file_per_table
- 1 【默认】:独立表空间
- 0系统表空间

安全配置相关参数
设置指定自动清理binlog的天数

命令:expire_logs_days
意解: 默认为 0,就是不清理的意思。也可以写天数,如 7 ,就是只保存 7天的意思。

禁止非super权限的用户写权限

命令:read_only

设置所使用的SQL模式

命令:sql_mode

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值