我正在尝试使用pt存档来归档我的数据库。下面是我的存档过程脚本。
pt-archiver --source h=localhost,D=***,t=** --user=*** --password=**** --where "dateTime<'2022-07-01 00:00:00'" --limit=1000 --progress=1000 --txn-size=1000 --statistics --no-check-charset --no-delete --file="/usr/local/test1.dat" --output-format=csv下面是输出行的一个示例
0,2,0,0,1,"2022-05-26 01:46:54","2022-05-26 19:27:15","-1.22706831",36.70828247,0,0,0,2674.4,0,0.000,1,1,0,0,0
请看这个字段"-1.22706831“,它有双引号,而这个字段没有36.70828247。那么,我是否应该坚持默认文件,该文件在字段之间生成空间?从长远来看,谁会更有效地维持下去?
发布于 2023-01-06 17:37:09
通常,一个引号(单引号或双引号)在用作任何数字数据类型时工作得很好。
为什么呢?我不知道。我怀疑减号(-)触发了对引号的需求。也许像12e3或1.2e-3这样的浮动数字也会得到引号。
true,false,NULL --这些最好不要被引用。
添加空格;更改
FIELDS TERMINATED BY ','至
FIELDS TERMINATED BY ', '这条线索很难看出来,但它在WARNINGS中:
Incorrect datetime value: ' "2022-05-26 01:46:54"' for column 'dateTime' at row 1注意,例如,如何
0, 2, 0, 0, 1, "2022-05-26 02:06:54", "2022-05-26 19:27:17", "-1.22706831", 36.70828247, 0, 0, 0, 2674.4, 0, 0.000, 1, 1, 0, 0逗号后面总是有空格。
发布于 2023-01-18 03:58:44
如果你现在有24个月的数据,但想要删除到3个月的价值,那么最好的方法,到目前为止,是复制你想要保存的数据。
CREATE TABLE tmp (...,
PRIMARY KEY(...) -- with the `PRIMARY KEY` but no other `INDEXes`
)
PARTITION BY RANGE (TO_DAYS(...)), ...
-- include about 15 weekly partitions (as discussed in my blog)
-- because you will be deleting more data in the future,
-- Stop writing to `real`
INSERT INTO tmp
SELECT * FROM real;
ALTER TABLE tmp
ADD ((the desired secondary indexes));
RENAME TABLE real TO old,
tmp TO real;
-- test things, then
-- allow writing to real
DROP TABLE old;注意,INSERT...SELECT避免了对pt-archiver的需求。
我的分区博客。
https://dba.stackexchange.com/questions/321808
复制相似问题