SELECT
c.*,
(SELECT count(*) as cnt FROM ss_products c2 WHERE c2.model=c.model AND c2.vendor=c.vendor AND amount>0) as mcnt
FROM
ss_products c
WHERE
(".$likes.") AND $enabled
ORDER BY
c.model
LIMIT
".$from_limit.",20
";
Есть вот такой запрос... он работает... mcnt считает правильно, но если сделать ORDER BY mcnt - все подвисает... как сделать так что бы работало с ORDER BY mcnt...
Подскажите пожалуйста.
Спустя 1 час, 19 минут, 46 секунд (28.12.2011 - 18:29) kent666 написал(а):
попробуй
SELECT
c.*,
(SELECT count(*) as cnt FROM ss_products c2 WHERE c2.model=c.model AND c2.vendor=c.vendor AND amount>0) as mcnt
FROM
ss_products c
WHERE
(".$likes.") AND $enabled
ORDER BY
c.model DESC
LIMIT
".$from_limit.",20
";
Спустя 16 минут, 50 секунд (28.12.2011 - 18:46) sergeiss написал(а):
Попробуй так:
SELECT * FROM
(
SELECT
c.*,
(SELECT count(*) as cnt FROM ss_products c2 WHERE c2.model=c.model AND c2.vendor=c.vendor AND amount>0) as mcnt
FROM
ss_products c
WHERE (".$likes.") AND $enabled) ini_selection
ORDER BY mcnt
LIMIT ....
Спустя 14 часов, 35 минут, 7 секунд (29.12.2011 - 09:21) mrmaloy написал(а):
kent666
В чем разница между моим запросом и Вашим? c.model DESC?
Спасибо что откликнулись.
sergeiss
Так тоже подвисает =(
Может есть еще варианты? =(
В чем разница между моим запросом и Вашим? c.model DESC?
Спасибо что откликнулись.
sergeiss
Так тоже подвисает =(
Может есть еще варианты? =(
Спустя 50 минут, 49 секунд (29.12.2011 - 10:12) Семён написал(а):
Индексы стоят?
Спустя 3 минуты, 7 секунд (29.12.2011 - 10:15) mrmaloy написал(а):
CREATE TABLE IF NOT EXISTS `ss_products` (
`productID` int(11) NOT NULL auto_increment,
`categoryID` int(11) default NULL,
`name` varchar(255) collate utf8_unicode_ci default NULL,
`title` varchar(255) collate utf8_unicode_ci NOT NULL,
`alt_name` varchar(40) collate utf8_unicode_ci NOT NULL,
`description` text collate utf8_unicode_ci,
`Price` int(11) default NULL,
`amount` int(11) default NULL,
`available` int(1) NOT NULL default '1',
`enabled` int(11) default NULL,
`brief_description` text collate utf8_unicode_ci,
`vendor` varchar(11) collate utf8_unicode_ci NOT NULL,
`model` varchar(40) collate utf8_unicode_ci NOT NULL,
`wid` varchar(11) collate utf8_unicode_ci NOT NULL,
`dia` varchar(11) collate utf8_unicode_ci NOT NULL,
`et` varchar(11) collate utf8_unicode_ci NOT NULL,
`holes` varchar(11) collate utf8_unicode_ci NOT NULL,
`pcd` varchar(11) collate utf8_unicode_ci NOT NULL,
`dco` varchar(11) collate utf8_unicode_ci NOT NULL,
`color` varchar(40) collate utf8_unicode_ci NOT NULL,
`height` int(11) NOT NULL,
`season` tinyint(2) NOT NULL,
`spike` tinyint(2) NOT NULL,
`iweight` varchar(11) collate utf8_unicode_ci NOT NULL,
`ispeed` varchar(11) collate utf8_unicode_ci NOT NULL,
`picture` text collate utf8_unicode_ci NOT NULL,
`date_added` datetime default NULL,
`date_modified` datetime default NULL,
`viewed_times` int(11) default '0',
`meta_description` varchar(255) character set utf8 NOT NULL,
`meta_keywords` varchar(255) character set utf8 NOT NULL,
`min_order_amount` int(11) default '1',
PRIMARY KEY (`productID`),
KEY `IDX_PRODUCTS1` (`categoryID`),
FULLTEXT KEY `searchin` (`name`,`brief_description`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=69036 ;
Спустя 9 минут, 6 секунд (29.12.2011 - 10:24) dadli написал(а):
mrmaloy
что значит подвисает? ошибку виведт? или не так сортруется как ви хотите? по моему ваш запрос рабочи. если так напишите не работает?
что значит подвисает? ошибку виведт? или не так сортруется как ви хотите? по моему ваш запрос рабочи. если так напишите не работает?
....
ORDER BY mcnt
....
Спустя 2 минуты, 3 секунды (29.12.2011 - 10:26) mrmaloy написал(а):
dadli
В phpMyAdmin он обрабатывается очень долго, а на сайте естественно стоит ограничение на обработку скрипта не более 30с и в то время пока обрабатывается запрос - загрузить другую страницу с этого сервера не возможно... все ресурсы уходят на обработку этого запроса.
В phpMyAdmin он обрабатывается очень долго, а на сайте естественно стоит ограничение на обработку скрипта не более 30с и в то время пока обрабатывается запрос - загрузить другую страницу с этого сервера не возможно... все ресурсы уходят на обработку этого запроса.
Спустя 11 минут, 54 секунды (29.12.2011 - 10:38) dadli написал(а):
mrmaloy
а ясно, я так понил что запрос биль не рабочьи...
установите ключ INDEX к полям model и vendor и пробуите
а ясно, я так понил что запрос биль не рабочьи...
установите ключ INDEX к полям model и vendor и пробуите
Спустя 16 минут, 2 секунды (29.12.2011 - 10:54) mrmaloy написал(а):
dadli
С индексами все заработало !! Спасибо огромное =)
Не хочется наглеть, но все же =)
На сайте заметны доли секунд пока запрос обрабатывается, может еще что то где то можно подпилить напильничком до идеальной обработки? =)
С индексами все заработало !! Спасибо огромное =)
Не хочется наглеть, но все же =)
На сайте заметны доли секунд пока запрос обрабатывается, может еще что то где то можно подпилить напильничком до идеальной обработки? =)
Спустя 17 минут, 33 секунды (29.12.2011 - 11:12) dadli написал(а):
mrmaloy
как виглядит част (".$likes.") из вашего запроса? может и там стоит индексировать какиeта поля...
и еше почитаите про кэширование mysql
как виглядит част (".$likes.") из вашего запроса? может и там стоит индексировать какиeта поля...
и еше почитаите про кэширование mysql
Спустя 5 минут, 35 секунд (29.12.2011 - 11:17) mrmaloy написал(а):
dadli
(".$likes.") - эта часть может быть абсолютно разной...
Самый простой вариант -
Самый ужасный вариант -
(".$likes.") - эта часть может быть абсолютно разной...
Самый простой вариант -
(vendor='RL')
Самый ужасный вариант -
((dia='18' AND wid='8.5' AND et='46' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='19' AND wid='9' AND et='48' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='22' AND wid='9' AND et='40' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='19' AND wid='9.5' AND et='45' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='19' AND wid='9.5' AND et='42' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='20' AND wid='9.5' AND et='45' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='19' AND wid='10' AND et='40' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='19' AND wid='10' AND et='53' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='20' AND wid='10' AND et='40' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='21' AND wid='10' AND et='40' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='22' AND wid='10' AND et='42' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='19' AND wid='10.5' AND et='30' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='20' AND wid='10.5' AND et='30' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='22' AND wid='10.5' AND et='30' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='20' AND wid='11' AND et='37' AND holes='5' AND pcd='120' AND dco='74.1') OR (dia='21' AND wid='11.5' AND et='38' AND holes='5' AND pcd='120' AND dco='74.1'))
_____________
<td></td>...<td></td>...<td></td>... тихо стучали колеса поезда в ночной тишине.