我正准备收集长时间的统计数据。它将被记录在小块中,我打算将它们全部放在一个TEXT字段中,最新的第一个..像这样的排序
[date:03.01.2016,data][date:02.01.2016,data][date:01.01.2016,data]...
它会比那更频繁(只是一个样本),但应该保持足够小,以便记录数十年,但又大到足以让我想要优化它。
我正在寻找2件事
这些块将是固定长度的,因此我可以准确估计需要下载多少个字符来显示X时间段的统计数据。
答案 0 :(得分:1)
你的两个问题的答案是"是":
update t
set field = concat($newval, field)
where id = $id;
和
select left(field, 100)
from t
where id = $id;
(这些假设表中有多行。)
也就是说,在关系数据库中,存储数据的方法绝对不是正确的做法。
据推测,你想要一个看起来像这样的表:
create table t (
tId int auto_increment primary key,
creationDate date,
data <something>
);
(如果data
应该是多列,这可能会更复杂。)
然后插入表格:
insert into t(createDate, data)
select $date, $data;
你可以获取最新的一行:
select t.*
from t
order by tId desc
limit 1;
所有这些只是示例,因为您的问题并未提供数据的完整图片。