【Mysql innodb 写入数据最重要的参数】2010-12-10 16:38【Mysql innodb 写入数据最重要的参数】
要加快写入速度,又不丢失数据,这几个参数比较关键:
1. innodb_buffer_pool_size 这个参数包括查询、写入缓存等等设置,越大越好
2. innodb_log_file_size 这个是写入操作事务日志大小,如果设置的小,那么就会频繁的需要同步到物理数据,一般128M足够用,设置到256M也可以,也有设置为1024M的
3. innodb_flush_log_at_trx_commit 实务日志写入方式:0:每隔1秒写入一次 1:有commit命令就吸入 2:两种方法都是用,commit也写,每秒也写,建议设为0
4. innodb_flush_method 这个是使用什么方式写入数据,值有 Fdatasync、O_DSYNC、O_DIRECT,缺省是 Fdatasync。随机写(更新操作)用O_DIRECT更好,一般写使用 fdatasync就足够了。 fdatasync被认为是安全的,因为在MySQL总会调用fsync来flush数据。使用O_DSYNC是有些风险的,有些OS会忽略该参数O_SYNC。我们看到O_DIRECT和fdatasync和很类似,但是它会使用O_DIRECT来打开数据文件。有数据表明,如果是大量随机写入操作,O_DIRECT会提升效率。但是顺序写入和读取效率都会降低。所以使用O_DIRECT需要谨慎。
5. innodb_file_per_table 能够把每个表都拆成一个数据文件,能够生成多个文件操作fd,加快数据写入
要加快写入速度,又不丢失数据,这几个参数比较关键:
1. innodb_buffer_pool_size 这个参数包括查询、写入缓存等等设置,越大越好
2. innodb_log_file_size 这个是写入操作事务日志大小,如果设置的小,那么就会频繁的需要同步到物理数据,一般128M足够用,设置到256M也可以,也有设置为1024M的
3. innodb_flush_log_at_trx_commit 实务日志写入方式:0:每隔1秒写入一次 1:有commit命令就吸入 2:两种方法都是用,commit也写,每秒也写,建议设为0
4. innodb_flush_method 这个是使用什么方式写入数据,值有 Fdatasync、O_DSYNC、O_DIRECT,缺省是 Fdatasync。随机写(更新操作)用O_DIRECT更好,一般写使用 fdatasync就足够了。 fdatasync被认为是安全的,因为在MySQL总会调用fsync来flush数据。使用O_DSYNC是有些风险的,有些OS会忽略该参数O_SYNC。我们看到O_DIRECT和fdatasync和很类似,但是它会使用O_DIRECT来打开数据文件。有数据表明,如果是大量随机写入操作,O_DIRECT会提升效率。但是顺序写入和读取效率都会降低。所以使用O_DIRECT需要谨慎。
5. innodb_file_per_table 能够把每个表都拆成一个数据文件,能够生成多个文件操作fd,加快数据写入