
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
26.11.2013, 07:36:07
|
|||
|---|---|---|---|
|
|||
Медленный запрос |
|||
|
#18+
Есть таблица: 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 Можно ли как то еще ускорить этот запрос или это придел для данной конфигурации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 08:06:48
|
|||
|---|---|---|---|
Медленный запрос |
|||
|
#18+
Albero, покажите описание таблицы, все имеюшиеся индексы, план запроса и select count(1) cnt1, count( ElmB >1 AND ElmB <70000) cnt1, count(distinct ElmС) cnt3 from tableA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 08:38:58
|
|||
|---|---|---|---|
Медленный запрос |
|||
|
#18+
Есть ли в этой таблице уникальное поле (первичный индекс)? Реально ли нужны ВСЕ поля? с учётом отфонарности выбора значений в группе... Какова селективность подзапроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 08:41:04
|
|||
|---|---|---|---|
|
|||
Медленный запрос |
|||
|
#18+
cnt1 1113427 cnt1 1113427 (количество того диапазона 84 000) cnt3 6371 Индекс: ElmA Индекс: ElmB Смешанный индекс: ElmA, ElmB Смешанный индекс: ElmB, ElmA Остальные поля таблицы: int/vrchar/datatime (16 штук) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 08:45:16
|
|||
|---|---|---|---|
|
|||
Медленный запрос |
|||
|
#18+
AkinaЕсть ли в этой таблице уникальное поле (первичный индекс)? Реально ли нужны ВСЕ поля? с учётом отфонарности выбора значений в группе... Какова селективность подзапроса? Первичного нету, ненужен Поля для выборки все ненужны, но при указание конкретных запрос не сильно ускоряется Третий вопрос не понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 08:56:32
|
|||
|---|---|---|---|
|
|||
Медленный запрос |
|||
|
#18+
AlberoИндекс: ElmС Индекс: ElmB Смешанный индекс: ElmС, ElmB Смешанный индекс: ElmB, ElmС Опечатался, не тот столбец написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 09:19:41
|
|||
|---|---|---|---|
Медленный запрос |
|||
|
#18+
Alberocnt1 1113427 (количество того диапазона 84 000)Селективность 7.5% 0 индекс будет использоваться. Индекс по ElmB имеется. Ну всё собсно... AlberoПоля для выборки все ненужны, но при указание конкретных запрос не сильно ускоряется Покажите полный CREATE TABLE и дайте точный перечень необходимых полей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 10:23:26
|
|||
|---|---|---|---|
|
|||
Медленный запрос |
|||
|
#18+
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 раз то и время текущего запроса тоже увеличится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 10:24:29
|
|||
|---|---|---|---|
Медленный запрос |
|||
|
#18+
AkinaAlberocnt1 1113427 (количество того диапазона 84 000)Селективность 7.5% 0 индекс будет использоваться. Индекс по ElmB имеется. Ну всё собсно...Мне казалось, что порог - 5%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 10:26:53
|
|||
|---|---|---|---|
Медленный запрос |
|||
|
#18+
AlberoВ том запросе нужны ElmASUM, ElmNА как это согласуется с группировкой по полю ElmС ? Ведь в поле ElmN будет значение из случайной записи в пределах группы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 10:27:15
|
|||
|---|---|---|---|
Медленный запрос |
|||
|
#18+
AlberoВ том запросе нужны ElmASUM, ElmN В запросе выполняется группировка по ElmС. В группе есть, вероятно, разные ElmN. В запросе возвращается один из них - прочём отфонарно какой именно. Поневоле вопрос - а оно тебе и вправду надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
26.11.2013, 10:29:10
|
|||
|---|---|---|---|
Медленный запрос |
|||
|
#18+
miksoftМне казалось, что порог - 5%.ЕМНИП 20% (а по некоторым данным - так и вовсе 25%) - это число, выше которого индекс гарантированно НЕ используется (если не форсить, да и то не факт). А вот ниже типа всяко бывает... впрочем, не настаиваю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=47&mobile=1&tid=1835660]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 299ms |

| 0 / 0 |
