我让这台服务器设置了一个实时流量日志数据库,其中包含一个大的统计数据表。现在我需要从中创建一个较小的表,假设是 30 天前。
该服务器还有一个复制数据的从服务器,比主服务器晚 5 秒。我创建了这个从站是为了减少用于选择查询的服务器进程,因此它只适用于流量日志的插入/更新。
现在我需要将最后一天复制到较小的表中,并且仍然不使用“真实”数据库,因此我需要从从属中选择并插入到真正的较小表中。(从机只允许读操作)。
我正在使用 PHP,我无法通过一个查询在一个查询中使用两个不同的数据库来解决这个问题......如果可能,请告诉我如何?
当使用两个查询时,我需要将最后一天保存为 PHP MySQL 对象。对于 300K-650K 的行,它开始成为缓存问题。我会使用 ID 的部分选择(通过在 where 术语处设置 id)块,但我没有自动增量 id 字段并且行没有 id(当存储流量数据时,id 会占用大量空间) .
所以我正在尝试这个想法,我想得到第二个意见。
如果我一次取最后一天(300K 行),它将使 PHP 内存过载。我可以使用限制块,或者一个新想法:一次选择一列并将这一列复制到新的真实表中。但我不知道第二种方法是否可行。插入是否在列级别或行级别查看第一个开放空间?主要思想是减少选择的大小..所以是否可以按列构建选择,然后将它们作为列插入 mysql?