SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.02.2017 10:51:36

kaiseri
Завсегдатай
Зарегистрирован: 26.09.2016
Сообщений: 26

Как правильно выбрать данные?

Добрый день, подскажите плиз.  Необходимо выбрать данные из таблицы посчитать одинаковые документы и вывести их в порядке убывания.

собственно сам запрос:

SELECT `organ_name`, `reg_number_organ`, COUNT(`reg_number_organ`) AS `count` FROM `parse` GROUP BY `reg_number_organ` ORDER BY `count` DESC LIMIT 0, 50



То есть нужно подсчитать все строки и вывести по уменьшению. Насколько я понимаю, данный запрос проходит все строки, по базе и индексы его все равно не спасают. Выполняется довольно долго.   

Как в принципе такие выборки делать? Куда оптимизировать?

Неактивен

 

#2 12.02.2017 22:08:06

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Как правильно выбрать данные?

1. `organ_name` будет случайным среди одинаковых `reg_number_organ`
http://sqlinfo.ru/articles/info/18.html

2. индекс на `reg_number_organ`

Неактивен

 

#3 13.02.2017 11:45:16

kaiseri
Завсегдатай
Зарегистрирован: 26.09.2016
Сообщений: 26

Re: Как правильно выбрать данные?

индекс стоит, но при обходе 300тыс строк, все равно долго, обходятся-же все строки.
поэтому и подумал, может есть иная логика.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson