MySQL | Узнать сколько совпадений без выборки?

Qest
На сайте с 21.10.2010
Offline
40
1251

Нужно просто узнать сколько всего совпадений удовлетворяет запросу.

К примеру,

SELECT aaa FROM bbb WHERE ccc = ddd;

Если я сделаю такой запрос то к примеру будет 1млн совпадений, но он будет выполняться кучу времени, и aaa мне не нужно, мне нужно просто знать сколько таких совпадений.

Возможно ли это как-то сделать без выборки и как следствие траты кучи времени на выполнение?

bums
На сайте с 03.07.2006
Offline
442
#1

SELECT COUNT(aaa) FROM bbb WHERE ccc = ddd;

Ну и не забыть про индекс по ccc

Недорогая регистрация и продление доменов RU/SU/РФ/COM/NET/ORG/и т.д. ( https://www.regnic.name/?sesign ) в РЕГРУ, РЕГТАЙМ, Р01, РУЦЕНТР. А так же хостинг и SSL сертификаты.
S1
На сайте с 13.03.2008
Offline
49
#2

SELECT COUNT(aaa) FROM bbb WHERE ccc = 'ddd';

И про кавычки.

Дизайн сайтов (UI/UX), логотипов, баннеров и прочего... (/ru/forum/770062)
Qest
На сайте с 21.10.2010
Offline
40
#3
bums:
SELECT COUNT(aaa) FROM bbb WHERE ccc = ddd;

Ну и не забыть про индекс по ccc

Спасибо Вы правы, только мне это было нужно чтобы не тратить уйму времени на выполнение такого запроса. Так как если в таблице скажем 20 млн вариантов, то этот запрос будет просматривать 20 млн что долго так же как и SELECT. А мне нужно чтобы моментально вывелась просто цифра сколько всего будет выбрано вариантов если что.

Как например EXPLAIN, моментально выводит сколько будет проиндексировано строк в таком запросе.

И да, index на ссс сделать не могу ибо там тип, тоесть на все поля всего 3 разных значения ccc

Joker-jar
На сайте с 26.08.2010
Offline
154
#4

И как вы это себе представляете? Храните дополнительно счетчики, если на то пошло

Ezekiel
На сайте с 11.08.2010
Offline
28
#5
Qest:
Если я сделаю такой запрос то к примеру будет 1млн совпадений, но он будет выполняться кучу времени,

Вы теоретик? Счего Вы взяли, что этот запрос будет долго выполняться? Я на милионах записей делал довольно быстрые выборки. Зависит от индексов и "правильности" запросов, ну память еще и т.д.

Вы запрос то пробовали делать? Если да то скажите: есть такой-то запрос, есть такая-то таблица, выполняется столько-то, как оптимизировать?

Запрос делали? Проблема в чем?

Обмен WebMoney (http://bit.ly/kqBOlV) Продам инвайт на Хабр (http://www.plati.ru/asp/pay.asp?idd=1529255)
pikasso
На сайте с 27.01.2008
Offline
150
#6

Qest, а Вы не думали вынести этот запрос на отдельный софт, например Sphinx ? На нем такой запрос будет выполняться минимальное количество времени (десятые доли сек.).

Attar
На сайте с 01.10.2011
Offline
29
#7
Joker-jar:
И как вы это себе представляете? Храните дополнительно счетчики, если на то пошло

согласен, самый простой способ хранить в отдельно таблице счетчики...

http://alteraweb.ru (http://alteraweb.ru), http://citycycling.ru (http://citycycling.ru) http://www.free-lance.ru/users/Attar/ (http://www.free-lance.ru/users/Attar/)
Qest
На сайте с 21.10.2010
Offline
40
#8

Ezekiel, я это сказал к примеру, ок пусть будет 100кк

pikasso, про сфинкс вкурсе это решит решит проблему, но в данном случае вопрос именно по sql

Attar, мне тоже пока видится только такой вариант, но если счетчик собъется, например будет delete из базы то все хана

[umka]
На сайте с 25.05.2008
Offline
456
#9
Qest:
Attar, мне тоже пока видится только такой вариант, но если счетчик собъется, например будет delete из базы то все хана

Если сделать единую процедуру добавления/удаления записей, которая будет, соответственно, увеличивать/уменьшать сётчики, проблем не будет.

Ну и как вариант, можно раз в сутки/в час/в 10 минут эти счётчики пересчитывать принудительно.

Лог в помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий