我有一个查询。这应该获取2个月前创建的记录。 mysql表类型是Innodb。 我用哪种类型的日期(时间)。 Datetime或Timestamp int(11)或Timestamp以获得更好的性能。 记录大约是50000-100000。
....
$monthsback = 2;
$date = strtotime("-$monthsback months",time());
$date =date( "Y-m-d H:i:s", $date ); // if i use Datetime
while($result=mysql_fetch_array($r))
{
$recorddate=$result['date'];//fetched from mysql
if ($recorddate>$monthsback)
{
echo "....";
}
else
{
echo "....";
}
}
...
答案 0 :(得分:9)
你只处理了十万条记录?
然后,这符合微优化。
选择最适合数据的列类型。 DATETIME
最终将成为存储日期和时间信息的最佳,最灵活的列类型,因为这是它的目的。
如果证明另一种方法更快,则只需更改此 。通过 benchmarking and profiling your code 执行此操作,以查找真正的瓶颈。