0

テーブルを作成するための私のSQLは次のとおりです。

$sql_create_table = "CREATE TABLE {$table_name} (
                  hit_id bigint(20) unsigned NOT NULL auto_increment,
                  user_id int(7) unsigned NOT NULL default '0',
                  optin_id int(8) unsigned NOT NULL default '0',
                  hit_date datetime NOT NULL default '0000-00-00 00:00:00',
                  hit_type varchar(10) NOT NULL default '',
                  PRIMARY KEY  (hit_id),
                  KEY user_id (user_id)
             ) $charset_collate; ";

クエリ内の行数をカウントする最速の方法を知る必要があります。私の現在のクエリは、何百万もの行を処理するのに適していません。

$sql = "SELECT hit_id FROM $table_name WHERE user_id = %d AND hit_type = %s AND hit_date >= FROM_UNIXTIME(%d) AND hit_date <= FROM_UNIXTIME(%d)";

私は運が悪い(適切な結果を返さない)でこれを試しました:

$sql = "SELECT COUNT(*) FROM $table_name WHERE user_id = %d AND hit_type = %s AND hit_date >= FROM_UNIXTIME(%d) AND hit_date <= FROM_UNIXTIME(%d)";

何百万行もタイムアウトしないように、このクエリを効率的にするにはどうすればよいですか? 指定したパラメーター セット内の行数を数えたいだけです。

4

1 に答える 1