1

私は、長い間亡くなった開発者によって作成されたビューを分解して書き直そうとしています。すべての CONCAT から推測すると、このクエリはアクセスに 3 分以上かかります。

CREATE VIEW `active_users_over_time` AS 
select 
   `users_activity`.`date` AS `date`,
   time_format(
        addtime( 
            concat(`users_activity`.`date`,' ',`users_activity`.`time`),
            concat('0 ',sec_to_time(`users_activity`.`duration_checkout`),'.0')
        ),'%H:%i:%s') AS `time`,
   `users_activity`.`username` AS `username`,
   count(addtime(concat(`users_activity`.`date`,' ',`users_activity`.`time`),
   concat('0 ',sec_to_time(`users_activity`.`duration_checkout`),'.0'))) AS `checkouts` 
from `users_activity` 
group by 
   concat(
       addtime(
             concat(`users_activity`.`date`,' ',`users_activity`.`time`),
             concat('0 ',sec_to_time(`users_activity`.`duration_checkout`),'.0')
       ),
       `users_activity`.`username`);

データは SQL テーブルから取得されます。

CREATE TABLE `users_activity` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `featureid` smallint(5) unsigned NOT NULL,
  `date` date NOT NULL,
  `time` time NOT NULL,
  `duration_checkout` int unsigned NOT NULL,
  `update_date` date NOT NULL,
  `username`  varchar(255) NOT NULL,
  `checkout` smallint(5) unsigned NOT NULL,
  `licid` smallint(5) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `featureid_licid_username` (`featureid`,`licid`,`date`,`time`,`username`),
  FOREIGN KEY(featureid) REFERENCES features(id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

何が必要で、何が必要でないかを正確に判断するのに苦労しています。

誰にもアイデアはありますか?ありがとう。

4

2 に答える 2