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

start [/forum/topic.php?fid=47&gotonew=1&tid=1835660]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
27ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 188ms |
| total: | 282ms |

| 0 / 0 |
