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]...
这将是更频繁的(只是一个样本),但应该保持小到足以保持记录几十年,但大到足以让我想优化它

我在找两样东西

  • 您可以在mysql中附加到字段的前面吗
  • 您能否部分读取该字段,例如前100个字符

  • 块的长度是固定的,因此我可以准确估计需要下载多少字符才能显示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;