Являются ли оконные функции медленными в MariaDB? - PullRequest
0 голосов
/ 24 марта 2019

Рассмотрим этот запрос:

select d.*
from data d
where channel_id=83
order by channel_id,timestamp

Выполнение выполняется немедленно, как channel_id, отметка времени проиндексирована:

CREATE TABLE `data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `channel_id` int(11) DEFAULT NULL,
  `timestamp` bigint(20) NOT NULL,
  `value` double NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `data_unique` (`channel_id`,`timestamp`),
  KEY `IDX_ADF3F36372F5A1AA` (`channel_id`),
  CONSTRAINT `FK_ADF3F36372F5A1AA` FOREIGN KEY (`channel_id`) REFERENCES `entities` (`id`)
)

Как только я добавляю простую LAG (), запрос замедляется доcrawl:

select d.*
,lag(value) over (order by channel_id,timestamp)
from data d
where channel_id=83
order by channel_id,timestamp

Объяснить план:

+------+-------------+-------+------+----------------------------------+----------------------+---------+-------+--------+-----------------+
| id   | select_type | table | type | possible_keys                    | key                  | key_len | ref   | rows   | Extra           |
+------+-------------+-------+------+----------------------------------+----------------------+---------+-------+--------+-----------------+
|    1 | SIMPLE      | d     | ref  | data_unique,IDX_ADF3F36372F5A1AA | IDX_ADF3F36372F5A1AA | 5       | const | 759654 | Using temporary |
+------+-------------+-------+------+----------------------------------+----------------------+---------+-------+--------+-----------------+

Объяснить план без оператора LAG ():

+------+-------------+-------+------+----------------------------------+----------------------+---------+-------+--------+-------+
| id   | select_type | table | type | possible_keys                    | key                  | key_len | ref   | rows   | Extra |
+------+-------------+-------+------+----------------------------------+----------------------+---------+-------+--------+-------+
|    1 | SIMPLE      | d     | ref  | data_unique,IDX_ADF3F36372F5A1AA | IDX_ADF3F36372F5A1AA | 5       | const | 759730 |       |
+------+-------------+-------+------+----------------------------------+----------------------+---------+-------+--------+-------+

Есть ли проблемы с производительностью оконных функций вmariadb или я делаю этот запрос неправильно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...