2010-01-08 45 views
1

我想知道是否有可能自动化或通过按钮将mysql表信息从一个表移动到另一个表从第一个表中删除它,并将其放在另一个表中?使用PHP。MYSQL移动信息与php

我的mysql表很大,向该表添加信息的页面上有70个查询,这会减慢页面刷新时间。我需要在每天的特定时间将信息从第一张桌面移动到第二张桌面,以便这些查询不必查看我所有的巨型27k排桌子。

这可能吗?

此外,如果有人可以帮助我对这个页面的评论,我将不胜感激。 link text

回答

1

PHP没有一个持续运行的服务器,您可以安排后台任务。

如果您有权访问服务器,您可以设置一个cron作业(或windows下的计划任务)来为您运行PHP脚本。

或者(并不是很好),您可以将脚本放在网络服务器上,并在适当的时候通过在浏览器中输入URL手动调用它。

+2

+1 |但要小心这样的面向公众的脚本。 – Sampson 2010-01-08 14:37:20

1

一个27k的行表是小的通过SQL标准,只要它被正确索引。例如,如果您不关心昨天的数据,则可以添加索引日期列并使用WHERE myDate > NOW() - INTERVAL 1 DAY进行筛选,SQL将自动将查询限制为小于24小时的行。

+0

它看起来像我需要看看索引。谢谢。 – Eric 2010-01-08 14:58:39

0

27k不是很大的表,MySQL应该可以正常工作。你有所有必需的索引吗?你在缓慢的查询中使用了EXPLAIN吗? 至于将数据从一个表移动到另一个表的问题 - 创建一个由CRON运行的php脚本,并逐一移动行。这里有什么问题?

1

我想知道是否有可能自动化或通过按钮将mysql表信息从一个表移动到另一个表从第一个表中删除它,并将它放在另一个表中?使用PHP。

可以开始从PHP,但你问什么是有效的MySQL的域。

它可以在两个语句来完成:

  1. 使用的INSERT INTO statement将行从旧表复制到新的一个
  2. 删除旧表

我更倾向于将这是为了一个事务和易于执行而存储在一个存储过程中(如果你想让它由CRON/etc启动),因为调用一个或多个对象会更容易。