From 0732d32f508045da40fe9df607b9ef20ce2d198f Mon Sep 17 00:00:00 2001 From: xaver Date: Tue, 6 Mar 2012 15:03:23 +0000 Subject: [PATCH] join fix - disappered in commit + Switch traffic joins, because its faster - Tested in a productive system (MySQL 5.1) as query few tausend domains 1-3 sec for Webtraffic sort, faster SQL = faster and MySQL 5.5 is much faster with joins (standard is not sorted with slow traffic querys) -> slowest part is coping the tables into temp -> more tweeks on cache... -> faster by heavy use --- .../lib/classes/listform_actions.inc.php | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/interface/lib/classes/listform_actions.inc.php b/interface/lib/classes/listform_actions.inc.php index e6d7d3f67..70aa15573 100644 --- a/interface/lib/classes/listform_actions.inc.php +++ b/interface/lib/classes/listform_actions.inc.php @@ -58,28 +58,28 @@ class listform_actions { //* Manipulate order by for sorting / Every list has a stored value //* Against notice error - if(!isset($_SESSION['search'][$app->listform->listDef["name"]]['order'])){ - $_SESSION['search'][$app->listform->listDef["name"]]['order'] = ''; + if(!isset($_SESSION['search'][$app->listform->listDef["name"].$app->listform->listDef['table']]['order'])){ + $_SESSION['search'][$app->listform->listDef["name"].$app->listform->listDef['table']]['order'] = ''; } if(!empty($_GET['orderby'])){ $order = str_replace('tbl_col_','',$_GET['orderby']); //* Check the css class submited value if (preg_match("/^[a-z\_]{1,}$/",$order)) { - if($_SESSION['search'][$app->listform->listDef["name"]]['order'] == $order){ - $_SESSION['search'][$app->listform->listDef["name"]]['order'] = $order.' DESC'; + if($_SESSION['search'][$app->listform->listDef["name"].$app->listform->listDef['table']]['order'] == $order){ + $_SESSION['search'][$app->listform->listDef["name"].$app->listform->listDef['table']]['order'] = $order.' DESC'; } else { - $_SESSION['search'][$app->listform->listDef["name"]]['order'] = $order; + $_SESSION['search'][$app->listform->listDef["name"].$app->listform->listDef['table']]['order'] = $order; } } } // If a manuel oder by like customers isset the sorting will be infront - if(!empty($_SESSION['search'][$app->listform->listDef["name"]]['order'])){ + if(!empty($_SESSION['search'][$app->listform->listDef["name"].$app->listform->listDef['table']]['order'])){ if(empty($this->SQLOrderBy)){ - $this->SQLOrderBy = "ORDER BY ".$_SESSION['search'][$app->listform->listDef["name"]]['order']; + $this->SQLOrderBy = "ORDER BY ".$_SESSION['search'][$app->listform->listDef["name"].$app->listform->listDef['table']]['order']; } else { - $this->SQLOrderBy = str_replace("ORDER BY ","ORDER BY ".$_SESSION['search'][$app->listform->listDef["name"]]['order'].', ',$this->SQLOrderBy); + $this->SQLOrderBy = str_replace("ORDER BY ","ORDER BY ".$_SESSION['search'][$app->listform->listDef["name"].$app->listform->listDef['table']]['order'].', ',$this->SQLOrderBy); } } @@ -196,7 +196,7 @@ class listform_actions { $tmp_year = date('Y',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); $tmp_month = date('m',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); $extselect .= ', SUM(wt.traffic_bytes) as calctraffic'; - $join .= ' JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; + $join .= ' INNER JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; $sql_where .= " AND YEAR(wt.traffic_date) = '$tmp_year' AND MONTH(wt.traffic_date) = '$tmp_month'"; $order_by_sql = str_replace('web_traffic_last_month','calctraffic',$order_by_sql); $order_by_sql = "GROUP BY domain ".$order_by_sql; @@ -204,45 +204,45 @@ class listform_actions { $tmp_year = date('Y'); $tmp_month = date('m'); $extselect .= ', SUM(wt.traffic_bytes) as calctraffic'; - $join .= ' JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; + $join .= ' INNER JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; $sql_where .= " AND YEAR(wt.traffic_date) = '$tmp_year' AND MONTH(wt.traffic_date) = '$tmp_month'"; $order_by_sql = str_replace('web_traffic_this_month','calctraffic',$order_by_sql); $order_by_sql = "GROUP BY domain ".$order_by_sql; } elseif($order == 'web_traffic_last_year'){ $tmp_year = date('Y',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); $extselect .= ', SUM(wt.traffic_bytes) as calctraffic'; - $join .= ' JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; + $join .= ' INNER JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; $sql_where .= " AND YEAR(wt.traffic_date) = '$tmp_year'"; $order_by_sql = str_replace('web_traffic_last_year','calctraffic',$order_by_sql); $order_by_sql = "GROUP BY domain ".$order_by_sql; } elseif($order == 'web_traffic_this_year'){ $tmp_year = date('Y'); $extselect .= ', SUM(wt.traffic_bytes) as calctraffic'; - $join .= ' JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; + $join .= ' INNER JOIN web_traffic as wt ON '.$app->listform->listDef['table'].'.domain = wt.hostname '; $sql_where .= " AND YEAR(wt.traffic_date) = '$tmp_year'"; $order_by_sql = str_replace('web_traffic_this_year','calctraffic',$order_by_sql); $order_by_sql = "GROUP BY domain ".$order_by_sql; } elseif($order == 'mail_traffic_last_month'){ $tmp_date = date('Y-m',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); - $join .= ' JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; + $join .= ' INNER JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; $sql_where .= " AND mt.month like '$tmp_date%'"; $order_by_sql = str_replace('mail_traffic_last_month','traffic',$order_by_sql); } elseif($order == 'mail_traffic_this_month'){ $tmp_date = date('Y-m'); - $join .= ' JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; + $join .= ' INNER JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; $sql_where .= " AND mt.month like '$tmp_date%'"; $order_by_sql = str_replace('mail_traffic_this_month','traffic',$order_by_sql); } elseif($order == 'mail_traffic_last_year'){ $tmp_date = date('Y',mktime(0, 0, 0, date("m")-1, date("d"), date("Y"))); $extselect .= ', SUM(mt.traffic) as calctraffic'; - $join .= ' JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; + $join .= ' INNER JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; $sql_where .= " AND mt.month like '$tmp_date%'";; $order_by_sql = str_replace('mail_traffic_last_year','calctraffic',$order_by_sql); $order_by_sql = "GROUP BY mailuser_id ".$order_by_sql; } elseif($order == 'mail_traffic_this_year'){ $tmp_date = date('Y'); $extselect .= ', SUM(mt.traffic) as calctraffic'; - $join .= ' JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; + $join .= ' INNER JOIN mail_traffic as mt ON '.$app->listform->listDef['table'].'.mailuser_id = mt.mailuser_id '; $sql_where .= " AND mt.month like '$tmp_date%'"; $order_by_sql = str_replace('mail_traffic_this_year','calctraffic',$order_by_sql); $order_by_sql = "GROUP BY mailuser_id ".$order_by_sql; -- GitLab