mysql - tidb 的 set[sync-log=false] 有什么区别和影响
问题描述
在 tidb 中,打开时sync-log
,disk io util 可以结束90%
,之后set sync-log=false
,它归结为1%
,这个配置有什么不好的影响?
解决方案
简而言之,sync-log=true
保持数据安全,但会损害性能。
TiDB 是基于 Raft 共识算法的,它需要确保每一个 raft 日志在提交之前都被持久化到多数人的磁盘上。为了确保日志被持久化,我们需要两个步骤:
- 写(log_fd,日志)
- fsync(log_fd)
时sync-log=false
,TiDB 跳过fsync
,它有助于性能,并且在没有断电的情况下是安全的。将其设置为 true,即使出现电源故障,您的数据也始终完好无损。
推荐阅读
- amazon-web-services - 我需要“Linux 的 Windows 子系统”来将 python 应用程序部署到 Windows 操作系统的 aws elastic beanstalk 吗?
- php - 在线托管 PHP - 将 UDP 发送到本地计算机
- haskell - foldr 类型签名与 foldl one 不同有什么原因吗?
- python - Jenkins 向我发送错误:ImportError: Import by filename is not supported
- android - 水平滚动时,GraphView 日期标签跳动
- json - 'curl: option -----END: is unknown' 使用 curl 将公钥上传到 jenkins SSH 凭证
- python - ValueError(在 python 中,使用 JSON 作为 dictConfig API 的输入)
- sql - 如何编写查询来控制基于链接表的数据表子表单的组合框?
- c - 通过动态内存分配计算字符串中的字符
- jquery - AJAX 客户端验证未正确调用