来自 @h5n1 的问题 佬们 在用load data加载数据,为啥tidbserver的磁盘利用率会升高
来自 @meditator 的回复:
用户可以使用 LocalOpt 参数来指定导入的数据文件位于客户端或者服务端。目前 TiDB 只支持从客户端进行数据导入,因此在导入数据时 LocalOpt 应设置成 Local
是不是读取csv文件的产生的io?
来自 @meditator 的回复:
tidb这块不知道是不是和mysql一样的,如果跟mysql一样的话,理论上不会产生IO,直接读取文本,绕过sql解析,然后直接生成数据块。
tidb 没法像mysql一样 生成结构化的数据块
https://docs.pingcap.com/zh/tidb/stable/sql-statement-load-data
官方文档 只是说兼容mysql语法,内部实现跟mysql 不一样
IO产生确实是swap问题。 tidb resource_control 设置内存大小64G ,测试了3次,第一次9:45-9:55 tidb_dml_batch_size=50W 刚跑了1分钟开始swap,单批次事务量大,提交慢,最后oom。 第二次10:45-10:48, 关闭swap,tidb_dml_batch_size=50W 跑了1分多钟就oom了。第三次10:50开始 tidb_dml_batch_size=1w tidb内存比较平稳
生产环境配置还是严格按照官方建议来配置,避免swap和tidb oom还是要控制事务的大小。另外这几个集群都是sas盘提交也比较慢。
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。