代码学堂(uxuew.cn)提供付费解决PHP WEB开发等技术服务,如果需要请 点击加我QQ:1662935793.
>数据库 > MySQL教程 > MySQL数据库配置与管理

MySQL数据库配置与管理

MySQL教程 围观6474次 更新日期:2017-06-28 22:56:58 留下足迹

1.日志同步与写入磁盘问题

1.1innodb_flush_log_at_trx_commit=n

这个n值决定什么时候把日志信息写入日志文件,以及什么把这些文件物理地(术语:同步)到硬盘上。

N=0----每隔一秒写依次日志并且进行同步一次。意味:减少硬盘写操作,但是可能会造成数据丢失。

N=1----每执行完一条commit命令就写一次日志,并且进行同步。意味:可以防止数据丢失,但是增

加了硬盘的I/0操作次数,可能造成硬盘写操作频繁,造成性能下降。

N=2----每执行一条commit命令就写一次日志,每隔一秒进行一次同步。

1.2sync_lbinog=n

这个参数用于设置每隔N次日志写操作就把日志文件写入硬盘一次(同步日志数据)。

N=1----每写一次日志并且进行同步一次。

N=0----由操作系统来负责二进制日志文件的同步工作。

1.3innodb_fush_method

InnoDB引擎日志文件的同步方法(仅适用unix/linux系统),。有两种取值:fdatasync(用fsync()函数进行同步);0_DSYNC(O_sync()函数进行同步)。默认为fdatasync,建议也是设置使用该方法,因为该方法比0_DSYNC块很多。

2.慢查询与未带索引查询SQL追踪

1.1慢查询选项设置

在my.cnf文件中增加:

long_query-time=n#默认为10秒,N表示为多少花费秒及以上的语句才算慢查询语句

#(SELECT/UPDATE/INSERT/DELETE等)

log-slow-queries=/usr/data/slow/slow.log

1.2未带索引查询选项设置

log-queries-not-using-indexes#SQL语句也会记录到slow.log中

3.关于授予存储过程编辑权限

可能大家都碰到过,授予某帐号CreateRoutine/AlterRoutine权限还是提示没有权限创建或修改存储过程,被

迫授予Super权限。这种情况下,需要设置参数:log_bin_trust_routine_creators=1,该选项默认值为0;执

行语句:SETlog_bin_trust_routine_creator=1。

4.InnoDB在关闭服务器时,缓存区数据写回时机设置

innodb_flush_shutdown=0/1,决定以最快的速度关闭InnoDB引擎,默认设置是1,意思是:不把缓存在INSERT缓存区的数据写入数据表,这些数据将在MySQL服务器下次启动时再写入(这么做没有什么风险,因为INSERT缓存区是表空间的一个组成部分,数据不会丢失)。0----表示在关闭InnoDB之前写回,但是可能出现还没写回完毕,操作系统就会强行关闭掉了InnoDB,从而会导致数据不完整。

5.MySQL复制时主机的innodb_flush_log_at_trx_commit与sync_lbinog设置

建议把设置如下:

innodb_flush_log_at_trx_commit=1

sync_lbinog=1

转载请注明:代码学堂>数据库 > MySQL教程 > MySQL数据库配置与管理

喜欢 (285) or 分享 (209)