mysql 优化
mysql> SHOW VARIABLES LIKE ‘%innodb_flush_log_at_trx_commit%‘; +--------------------------------+-------+ | Variable_name | Value | +--------------------------------+-------+ | innodb_flush_log_at_trx_commit | 1 | +--------------------------------+-------+ 1 row in set (0.00 sec)
此值 有三种类型 默认 1 (可选 2 和0)
set GLOBAL innodb_flush_log_at_trx_commit=0;
默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
【一般改为2】
----------------------------------------------------------------------
SELECT @@GLOBAL.sql_mode;
如果需要在数据库 插入 更新的时候 自动截断过长的数据 可用下面的
SET @@GLOBAL.sql_mode="STRICT_TRANS_TABLES";