# Time: 190819 16:02:08
# User@Host: t_one[t_one] @ localhost [] Id: 25065
# Schema: t_db Last_errno: 0 Killed: 0
# Query_time: 6.323997 Lock_time: 0.000257 Rows_sent: 12 Rows_examined: 264767 Rows_affected: 0
# Bytes_sent: 29507
SET timestamp=1566219728;
select distinct class_ads.*, class_ads.id as adid, date_format(class_ads.`date_added`,'%d.%m в %H:%i') as date_nice, date_format(class_ads.`date_expires`,'%d.%m в %H:%i') as date_expires_nice, UNIX_TIMESTAMP(class_ads.`date_added`) as `time_added`, (class_ads.date_expires < '2019-08-19 16:02:01' and class_ads.date_expires!='0000-00-00 00:00:00' and class_ads.active=0) as expired
, class_slugs.slug
from class_ads
inner join class_slugs on class_ads.id=class_slugs.object_id
where class_ads.active=1 and class_slugs.`type`='listing' order by `priority` desc, date_added desc limit 0, 12;
$str_index = "";
if($this->use_index) $str_index = " use index ({$this->use_index}) ";
$sql = "select distinct ".TABLE_ADS.".*$mlang_vars, ".TABLE_ADS.".id as adid, date_format(".TABLE_ADS.".`date_added`,'$date_format') as date_nice, date_format(".TABLE_ADS.".`date_expires`,'$date_format') as date_expires_nice, UNIX_TIMESTAMP(".TABLE_ADS.".`date_added`) as `time_added`, (".TABLE_ADS.".date_expires < '$timestamp' and ".TABLE_ADS.".date_expires!='0000-00-00 00:00:00' and ".TABLE_ADS.".active=0) as expired
$str_slugs
$q_vars
from ".TABLE_ADS." $str_index
$q_join $join_pictures $join_cat $join_users
$join_slugs
".$where.$where_slugs." ".$order_by." ".$order_way." ";
if($ads_per_page>0) $sql .= " limit ".$general_row.", ".$ads_per_page;
EXPLAIN SELECT DISTINCT class_ads . * , class_ads.id AS adid, DATE_FORMAT( class_ads.`date_added` , '%d.%m в %H:%i' ) AS date_nice, DATE_FORMAT( class_ads.`date_expires` , '%d.%m в %H:%i' ) AS date_expires_nice, UNIX_TIMESTAMP( class_ads.`date_added` ) AS `time_added` , (
class_ads.date_expires < '2019-08-19 20:07:29'
AND class_ads.date_expires != '0000-00-00 00:00:00'
AND class_ads.active =0
) AS expired, class_slugs.slug
FROM class_ads
INNER JOIN class_slugs ON class_ads.id = class_slugs.object_id
WHERE class_ads.active =1
AND class_slugs.`type` = 'listing'
ORDER BY `priority` DESC , date_added DESC
LIMIT 0 , 12
а если добавить explain перед select в самом скрипте то база перестает работать , т.е ничего не выводится кроме ошибки подключениячто логично, так как эта функция делает анализ, а не выборку.
SELECT /*DISTINCT*/ class_ads . * , class_ads.id AS adid, DATE_FORMAT( class_ads.`date_added` , '%d.%m в %H:%i' ) AS date_nice, DATE_FORMAT( class_ads.`date_expires` , '%d.%m в %H:%i' ) AS date_expires_nice, UNIX_TIMESTAMP( class_ads.`date_added` ) AS `time_added` , (
class_ads.date_expires < '2019-08-19 20:07:29'
AND class_ads.date_expires != '0000-00-00 00:00:00'
AND class_ads.active =0
) AS expired, class_slugs.slug
FROM class_ads
INNER JOIN class_slugs ON class_ads.id = class_slugs.object_id
WHERE class_ads.active =1
AND class_slugs.`type` = 'listing'
ORDER BY `priority` DESC , date_added DESC
LIMIT 0 , 12
select ".TABLE_ADS.".*$mlang_vars, ".TABLE_ADS.".id as adid
.*$mlang_vars,
я даже сейчас уже и не знаю select t1.*, t2.*
from (select * from class_ads where class_ads.active=1) as t1
inner join (select * from class_slugs where class_slugs.`type`='listing') as t2 on t1.id = t2.object_id
$str_index = "";
if($this->use_index) $str_index = " use index ({$this->use_index}) ";
$sql = "select distinct ".TABLE_ADS.".*$mlang_vars, ".TABLE_ADS.".id as adid, date_format(".TABLE_ADS.".`date_added`,'$date_format') as date_nice, date_format(".TABLE_ADS.".`date_expires`,'$date_format') as date_expires_nice, UNIX_TIMESTAMP(".TABLE_ADS.".`date_added`) as `time_added`, (".TABLE_ADS.".date_expires < '$timestamp' and ".TABLE_ADS.".date_expires!='0000-00-00 00:00:00' and ".TABLE_ADS.".active=0) as expired
$str_slugs
$q_vars
from ".TABLE_ADS." $str_index
$q_join $join_pictures $join_cat $join_users
$join_slugs
".$where.$where_slugs." ".$order_by." ".$order_way." ";
if($ads_per_page>0) $sql .= " limit ".$general_row.", ".$ads_per_page;
// echo $sql."<br/><br/>";
$arr = $db->fetchAssocList($sql);