Быстрый переход |
|
Программирование PHP, Perl, HTML, XHTML, CSS, JavaScript, MySQL и другие языки кодирования. |
|
Опции темы |
Сегодня | |||||
|
11.08.2014, 05:48 | #1 | |||
SEO Специалист
Реноме:
5371
|
MariaDB: несколько SELECT COUNT(*)
Коллеги, подскажите, можно ли на такой таблице
CREATE TABLE `z` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `x` smallint(5) unsigned NOT NULL DEFAULT '0', `a` int(11) unsigned NOT NULL DEFAULT '0', `b` int(11) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `x` (`x`) ) ENGINE=Aria DEFAULT CHARSET=cp1251 PAGE_CHECKSUM=1 TRANSACTIONAL=0 объединить запросы SELECT COUNT(*) AS n1 FROM `z` WHERE x=1 SELECT COUNT(*) AS n2 FROM `z` WHERE a=0 AND x=1 SELECT COUNT(*) AS n3 FROM `z` WHERE a=1 AND x=1 SELECT COUNT(*) AS n4 FROM `z` WHERE a>1 AND x=1 SELECT COUNT(*) AS n5 FROM `z` WHERE b=0 AND x=1 SELECT COUNT(*) AS n6 FROM `z` WHERE b=1 AND x=1 SELECT COUNT(*) AS n7 FROM `z` WHERE b>1 AND x=1 в один, дабы уменьшить общее время выполнения всех этих селектов (новые индексы создавать нельзя). добавлено через 4 часа 12 минут Подсказали следующее решение: SELECT SUM(1) AS `n1`, SUM(IF(a=0,1,0)) AS `n2`, SUM(IF(a=1,1,0)) AS `n3`, SUM(IF(a>1,1,0)) AS `n4`, SUM(IF(b=0,1,0)) AS `n5`, SUM(IF(b=1,1,0)) AS `n6`, SUM(IF(b>1,1,0)) AS `n7` FROM `z` WHERE x=1 Это ведь уже нельзя ускорить?
__________________
Коллекционер доменных имен. Последний раз редактировалось pastuhoff; 11.08.2014 в 10:00. Причина: Добавлено сообщение |
|||
Реклама | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|