Php 是否可以部分获取/修改字段?
我正准备收集长期统计数据。它将被记录在我计划粘贴到一个文本字段的小块中,最新的一个。。有点像这样Php 是否可以部分获取/修改字段?,php,mysql,Php,Mysql,我正准备收集长期统计数据。它将被记录在我计划粘贴到一个文本字段的小块中,最新的一个。。有点像这样 [date:03.01.2016,data][date:02.01.2016,data][date:01.01.2016,data]... 这将是更频繁的(只是一个样本),但应该保持小到足以保持记录几十年,但大到足以让我想优化它 我在找两样东西 您可以在mysql中附加到字段的前面吗 您能否部分读取该字段,例如前100个字符 块的长度是固定的,因此我可以准确估计需要下载多少字符才能显示X时间段的统
[date:03.01.2016,data][date:02.01.2016,data][date:01.01.2016,data]...
这将是更频繁的(只是一个样本),但应该保持小到足以保持记录几十年,但大到足以让我想优化它
我在找两样东西
块的长度是固定的,因此我可以准确估计需要下载多少字符才能显示X时间段的统计信息。您的两个问题的答案是“是”: 以及: (假设表中有多行。) 也就是说,在关系数据库中存储数据的方法绝对不是正确的 想必,您需要一个类似以下内容的表:
create table t (
tId int auto_increment primary key,
creationDate date,
data <something>
);
您可以获取最近的行:
select t.*
from t
order by tId desc
limit 1;
所有这些都只是例子,因为你的问题没有给出完整的数据。从很多方面来说,这听起来都是个坏主意。首先,如果您真的计划附加数千个或更多的时间戳,那么很容易超出列中的空间。另外,虽然可以通过更新旧值来模拟追加,但这也不是很好。一个更好的选择是将每个时间戳标记放入其自己的记录中。当有人要求您获取某个时段的统计数据时,您会怎么做?解析sting?你认为这样做对服务器、用户和存储有什么好处吗?Gordon是对的。将大量连接的数据放入RDMS中的
文本
字段就像用锤子拧入新家具的螺丝一样。它会弄得一团糟,一旦你开始使用它,你的家具就会散架。这有点棘手,因为我收集了数千个不同对象(表中的行)的数据,而且统计数据只在对象的上下文中才有意义,我认为将它们作为字段粘贴到对象中会比为它们创建单独的表更快、更有效them@user81993 . . . 您需要一个ObjectData
表,其中每个对象一行,每个数据一行。您不应该将数据放入单个串联字段中。这完全是错误的做法。
create table t (
tId int auto_increment primary key,
creationDate date,
data <something>
);
insert into t(createDate, data)
select $date, $data;
select t.*
from t
order by tId desc
limit 1;