我今天参加了测试。查看插入性能的变体 innodb表是空的,源文件有10K记录。
我使用了“mysql -uuname -pxxxxxx -Ddbanme< insert_file.sql”
以下是不同的统计数据。
BINARY LOGGING IS ENABLED
innodb_flush_log_trx_commit = 1 Time: 25 minutes
innodb_flush_log_trx_commit = 2 Time: 4 seconds
BINARY LOGGING IS DISABLED
innodb_flush_log_trx_commit = 1 Time: 6 minutes
innodb_flush_log_trx_commit = 2 Time: 3 seconds
我不确定从中可以理解什么。请分享您对此测试详情的看法。
答案 0 :(得分:2)
看看here,当innodb_flush_log_trx_commit
为1时,您将看到MySQL更频繁地写入刷新日志。正如您在文档中看到的那样,为了达到ACID合规性,它必须为1。在您的情况下,当从文件导入数据时,如果您有值1并且某些内容中断,则整个事务将失败(表将保持为空),值为2,如果出现故障,您的表将包含成功的记录(在导入之前)失败)。
关于BINARY LOGGING
,当没有二进制日志记录时,插入的工作速度会更快。如果您没有从属服务器并且不想从主服务器复制命令,则不需要二进制日志记录,因此您可以将其关闭,因为这样可以提高性能。