Mysql学习2-服务器参数

查看Mysql服务器读取参数的顺序:

mysqld --help --verbose | grep -A 1 'Default options'
# 另外,通过启动参数设置的参数的优先级最高

设置全局参数:

set global name=value;
set @@global.name=value;

设置会话参数

set [session] name=value;
set @@session.name=value;

查看参数

show variables like 'Innodb_log_files_in_group';

内存相关参数

  1. 每个线程使用的排序缓冲区的大小(排序的时候就会分配这个大小的内存):sort_buffer_size

  2. 连接缓冲区的大小:join_buffer_size

  3. myIsam进行全表扫描时分配的读缓冲区大小(一次性分配):read_buffer_size

  4. 索引缓冲区的大小(查询时分配需要的大小):read_rnd_buffer_size

  5. InnoDB缓存池大小:Innodb_buffer_pool_size

    总内存 - (每个线程需要的内存 * 连接数) - 系统保留内存

    关闭Mysql服务器时会先将InnoDB缓存池中的数据刷到磁盘

  6. 主要用于MyIsam存储引擎的缓存池(Mysql的系统表还在使用MyIsam存储引擎):key_buffer_size

IO相关参数

InnoDB相关配置

  1. 单个事务日志的大小:Innodb_log_file_size

  2. 事务日志文件个数(主要是用于多线程读写):Innodb_log_files_in_group

  3. 日志缓冲区的大小(事务日志会先存到缓冲区,再刷到磁盘,缓冲区能够保存一秒的事务日志即可):Innodb_log_buffer_size

  4. 事务刷到磁盘的频率:Innodb_flush_log_trx_commit

    0:每秒进行一次log写入cache,并flush log到磁盘(系统宕机会导致一秒的事务日志丢失)
    1:默认,每次事务都将log写入cache并flush log到磁盘(不会丢失任何日志,性能最差)
    2:建议,每次事务提交后,都将log写入cache并flush log到磁盘(可能丢失一个事务的日志)

  5. InnoDB刷新的方式:Innodb_flush_method

    设置InnoDB日志文件和数据文件如何与系统交互。建议设置为O_DIRECT,操作系统不缓存和预读数据,避免操作系统和InnoDB双重缓存

  6. 设置InnoDB如何使用表空间:Innodb_file_per_table

    ON:为InnoDB建立一个单独的表空间

  7. 设置InnoDB是否使用双写缓存:Innodb_doublewrite

    1:启用,避免页没有写完整而导致的数据损坏

MyIsam相关配置

  1. 控制关键字缓存中的数据什么时候刷到磁盘:delay_key_write

    OFF:关闭,每次操作后刷新键缓存中的脏块到磁盘
    ON:只对再建表时指定了delay_key_write选项的表使用延迟刷新
    ALL:对所有MyIsam表使用延迟键写入

安全相关参数

  1. 自动清理binlog的天数:expire_logs_days

    一般设置为7天

  2. mysql可以接收的包大小:max_allowed_paclet

    可以设置的大一点(32M),对于主从服务器,参数应该保持一致,以免同步失败

  3. 禁用DNS查找:skip_name_resolve

    连接服务器时,默认情况下,mysql会试图确认mysql客户端的域名,需要进行DNS的正向和反向查找,一旦DNS服务器出现异常,会导致查询堆积,从而导致连接超时。禁用后,只能对特点的ip或ip段进行授权

  4. 设置sysdate()返回的日期:sysdate_is_now

  5. 禁止非super权限用户写权限:read_only

    建议在从服务器使用这个参数

  6. 禁用slave自动恢复:skip_slave_start

    在从服务器上使用,禁止mysql在重启后自动复制,防止数据库崩溃重启后自动复制。

  7. 设置sql模式:sql_mode

    struct_trans_tables
    no_engine_subtitution
    no_zero_date
    no_zero_in_date
    only_full_group_by

其他参数

  1. 设置mysql如何向磁盘刷新binlog:sync_binlog

    0:默认,操作系统决定
    >0:间隔多少次写操作后刷到磁盘(一次事务有一次写操作),主服务器建议设为1

  2. 控制内存临时表大小:tmp_table_size, max_head_table_size

    建议不要设置太大,并保持一致

  3. 允许的最大连接数:max_connections

    根据应用和内存,可以设置大一些

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值