Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Медленный запрос / 12 сообщений из 12, страница 1 из 1
26.11.2013, 07:36:07
    #38477580
Albero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
Есть таблица: TableA (1кк+ строк)
Содержит поля: ElmA, ElmB, ElmC (эти поля int/bigint не уникальны), и другие

Есть запрос:
SELECT tB.*
FROM (
SELECT * , SUM( ElmA ) AS ElmASUM
FROM TableA
WHERE ElmB >1
AND ElmB <70000
GROUP BY ElmС
) AS tB
ORDER BY tB.ElmASUM DESC

Путем выноса ORDER BY, удалось ускорить до 0,4 сек
База на VPS / 512Mb / 800Mhz
Можно ли как то еще ускорить этот запрос или это придел для данной конфигурации?
...
Рейтинг: 0 / 0
26.11.2013, 08:06:48
    #38477584
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
Albero,

покажите описание таблицы, все имеюшиеся индексы,
план запроса и

select count(1) cnt1,
count( ElmB >1 AND ElmB <70000) cnt1,
count(distinct ElmС) cnt3
from tableA
...
Рейтинг: 0 / 0
26.11.2013, 08:38:58
    #38477597
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
Есть ли в этой таблице уникальное поле (первичный индекс)?
Реально ли нужны ВСЕ поля? с учётом отфонарности выбора значений в группе...
Какова селективность подзапроса?
...
Рейтинг: 0 / 0
26.11.2013, 08:41:04
    #38477598
Albero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
cnt1 1113427
cnt1 1113427 (количество того диапазона 84 000)
cnt3 6371

Индекс: ElmA
Индекс: ElmB
Смешанный индекс: ElmA, ElmB
Смешанный индекс: ElmB, ElmA

Остальные поля таблицы: int/vrchar/datatime (16 штук)
...
Рейтинг: 0 / 0
26.11.2013, 08:45:16
    #38477602
Albero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
AkinaЕсть ли в этой таблице уникальное поле (первичный индекс)?
Реально ли нужны ВСЕ поля? с учётом отфонарности выбора значений в группе...
Какова селективность подзапроса?

Первичного нету, ненужен

Поля для выборки все ненужны, но при указание конкретных запрос не сильно ускоряется

Третий вопрос не понял...
...
Рейтинг: 0 / 0
26.11.2013, 08:56:32
    #38477605
Albero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
AlberoИндекс: ElmС
Индекс: ElmB
Смешанный индекс: ElmС, ElmB
Смешанный индекс: ElmB, ElmС


Опечатался, не тот столбец написал.
...
Рейтинг: 0 / 0
26.11.2013, 09:19:41
    #38477630
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
Alberocnt1 1113427 (количество того диапазона 84 000)Селективность 7.5% 0 индекс будет использоваться. Индекс по ElmB имеется. Ну всё собсно...

AlberoПоля для выборки все ненужны, но при указание конкретных запрос не сильно ускоряется
Покажите полный CREATE TABLE и дайте точный перечень необходимых полей.
...
Рейтинг: 0 / 0
26.11.2013, 10:23:26
    #38477739
Albero
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
AkinaПокажите полный CREATE TABLE и дайте точный перечень необходимых полей.
В том запросе нужны ElmASUM, ElmN
CREATE TABLE `TableA` (
`ElmD` datetime NOT NULL,
`ElmB` bigint(20) NOT NULL,
`Elm1` int(11) NOT NULL,
`Elm2` int(11) NOT NULL,
`Elm3` int(11) NOT NULL,
`Elm4` int(11) NOT NULL,
`Elm5` int(11) NOT NULL,
`Elm6` int(11) NOT NULL,
`Elm7` int(11) NOT NULL,
`Elm8` int(11) NOT NULL,
`ElmN` varchar(200) NOT NULL,
`ElmA` int(11) NOT NULL,
`ElmS` int(11) NOT NULL,
`ElmC` int(11) NOT NULL,
`ElmJ` int(11) NOT NULL,
`ElmP` int(11) NOT NULL,
KEY `ElmB` (`ElmB`),
KEY `ElmC` (`ElmC`),
KEY `ElmBC` (`ElmB`,`ElmC`),
KEY `ElmCB` (`ElmC`,`ElmB`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Мне на основе того запроса нужно построить более сложный, но если этот запрос не ускорить минимум на порядок то придется делать срезы таблицы.

И второй вопрос если таблица вырастит в 10-100 раз то и время текущего запроса тоже увеличится?
...
Рейтинг: 0 / 0
26.11.2013, 10:24:29
    #38477742
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
AkinaAlberocnt1 1113427 (количество того диапазона 84 000)Селективность 7.5% 0 индекс будет использоваться. Индекс по ElmB имеется. Ну всё собсно...Мне казалось, что порог - 5%.
...
Рейтинг: 0 / 0
26.11.2013, 10:26:53
    #38477747
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
AlberoВ том запросе нужны ElmASUM, ElmNА как это согласуется с группировкой по полю ElmС ? Ведь в поле ElmN будет значение из случайной записи в пределах группы.
...
Рейтинг: 0 / 0
26.11.2013, 10:27:15
    #38477748
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
AlberoВ том запросе нужны ElmASUM, ElmN
В запросе выполняется группировка по ElmС. В группе есть, вероятно, разные ElmN. В запросе возвращается один из них - прочём отфонарно какой именно.

Поневоле вопрос - а оно тебе и вправду надо?
...
Рейтинг: 0 / 0
26.11.2013, 10:29:10
    #38477751
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Медленный запрос
miksoftМне казалось, что порог - 5%.ЕМНИП 20% (а по некоторым данным - так и вовсе 25%) - это число, выше которого индекс гарантированно НЕ используется (если не форсить, да и то не факт). А вот ниже типа всяко бывает... впрочем, не настаиваю.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Медленный запрос / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]