[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: order by count
mrmaloy
		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
Так тоже подвисает =(
Может есть еще варианты? =(

Спустя 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с и в то время пока обрабатывается запрос - загрузить другую страницу с этого сервера не возможно... все ресурсы уходят на обработку этого запроса.

Спустя 11 минут, 54 секунды (29.12.2011 - 10:38) dadli написал(а):
mrmaloy
а ясно, я так понил что запрос биль не рабочьи...
установите ключ INDEX к полям model и vendor и пробуите

Спустя 16 минут, 2 секунды (29.12.2011 - 10:54) mrmaloy написал(а):
dadli
С индексами все заработало !! Спасибо огромное =)

Не хочется наглеть, но все же =)
На сайте заметны доли секунд пока запрос обрабатывается, может еще что то где то можно подпилить напильничком до идеальной обработки? =)

Спустя 17 минут, 33 секунды (29.12.2011 - 11:12) dadli написал(а):
mrmaloy
как виглядит част (".$likes.") из вашего запроса? может и там стоит индексировать какиeта поля...
и еше почитаите про кэширование mysql

Спустя 5 минут, 35 секунд (29.12.2011 - 11:17) mrmaloy написал(а):
dadli

(".$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>... тихо стучали колеса поезда в ночной тишине.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.