Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在SQL查询中正确使用索引_Php_Sql_Indexing - Fatal编程技术网

Php 在SQL查询中正确使用索引

Php 在SQL查询中正确使用索引,php,sql,indexing,Php,Sql,Indexing,我对使用SQL有点陌生,我正在尝试运行一个查询,比较两个单独表中的两个值。我已经为正在使用的列编制了索引,但我不完全确定索引是如何工作的。我将它嵌入到PHP中,目前在我尝试运行查询时需要很长时间(有时甚至超时)。这两个表中每个表大约有25万行,因此查询应该不会太大。这是我的密码: $users1 = mysql_num_rows(mysql_query("SELECT DISTINCT idtracker.uuid FROM idtracker, download_tracker WH

我对使用SQL有点陌生,我正在尝试运行一个查询,比较两个单独表中的两个值。我已经为正在使用的列编制了索引,但我不完全确定索引是如何工作的。我将它嵌入到PHP中,目前在我尝试运行查询时需要很长时间(有时甚至超时)。这两个表中每个表大约有25万行,因此查询应该不会太大。这是我的密码:

$users1 = mysql_num_rows(mysql_query("SELECT DISTINCT idtracker.uuid
  FROM idtracker, download_tracker 
  WHERE idtracker.uuid = download_tracker.pluginId
  && idtracker.date > (NOW() - (2000000))", $con));
我不确定直接比较两行是否非常有效,就像我在这里做的那样。如果我能深入了解如何提高查询速度,那将非常有帮助

谢谢
-Ryan

在进行任何真正的测试/优化之前,您需要修复查询:

idtracker.date > (NOW() - (2000000))
这是错误的


如果您的
idtracker.date
属于
date
DATETIME
类型,并且希望将其与另一个日期进行比较(
NOW()
减去某个日期),则需要使用mysql函数或类似的函数。

您是否尝试过使用联接?我的日期字段目前是时间戳类型。我在网上查看,似乎每个使用DATE_ADD的人都在使用DATE或DATETIME类型。使用时间戳类型的查询的工作方式与我希望的相同,对于我正在执行的作业,将类型更改为DATE或DATETIME是否更有效/更值得?@Raj3m8不,时间戳,可以,但您不能仅从中减去整数,您需要使用de-mysql日期/时间函数。