0

私は SQL を使用するのが初めてで、2 つの別々のテーブルの 2 つの値を比較するクエリを実行しようとしています。使用されている列にインデックスを付けましたが、インデックスがどのように機能するか完全にはわかりません。私はそれを PHP に埋め込んでいますが、現在、クエリを実行しようとすると時間がかかります (タイムアウトすることもあります)。2 つのテーブルにはそれぞれ約 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));

ここで行っているように、2 つの行を直接比較することが非常に効率的かどうかはわかりません。このクエリの速度を改善するために何ができるかについての洞察を得ることができれば、それは非常に役に立ちます.

ありがとう -ライアン

4

1 に答える 1

1

実際のテスト/最適化を行う前に、クエリを修正する必要があります。

idtracker.date > (NOW() - (2000000))

間違っている。

あなたidtracker.dateの型がDATEorDATETIMEで、それを別の日付 (何かを差し引いたもの) と比較したいNOW()場合は、mysqlDATE_ADD関数または類似のものを使用する必要があります。

于 2012-07-10T01:02:10.213 に答える