私が持っているのは、IP、ブラウザー情報のハッシュ、訪問した URL、タイムスタンプの最終訪問日を含むテーブル statistieken です。
さまざまなソースからコンパイルできたものがこのクエリにつながりました.唯一の問題は、このクエリが約15000行のテーブルで完了するのに永遠に(9分)かかるため、このクエリは非常に非効率的です.
私はこれを間違った方法で行っていると思いますが、適切な投稿や選択の結果を使用して必要な結果を得る方法のチュートリアルを見つけることができません。
私が単純に欲しいのは、過去 12 時間に 25 ページを超えてアクセスした、返された結果のハッシュと一致するテーブル内のすべてのエントリの概要です。
CREATE TABLE IF NOT EXISTS `statsitieken` (
`hash` varchar(35) NOT NULL,
`ip` varchar(24) NOT NULL,
`visits` int(11) NOT NULL,
`lastvisit` int(11) NOT NULL,
`browserinfo` text NOT NULL,
`urls` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
これは、これまでにコンパイルしようとしたクエリです。
SELECT * FROM `database`.`statsitieken` WHERE hash in (SELECT hash FROM `database`.`statsitieken`
where `lastvisit` > unix_timestamp(DATE_SUB(
NOW(),INTERVAL 12 hour
)
)
group by hash
having count(urls) > 25
order by urls)
私の意見では可能なはずの1秒未満のように、まともな時間でコンパイルするにはこれが必要です...