У меня проблема с производительностью.У меня есть таблица под названием Alarmes с 20 столбцами.В этой таблице меня интересуют только 2 столбца (ALM_TAGNAME и ALM_LOGNODENAME).Таблица создается и обновляется автоматически из другой программы, я только хочу сделать статистику.Ну, я добавил ключ к двум столбцам ALM_TAGNAME, а также к ALM_LOGNODENAME, но даже с этими ключами выбор использует более 40 секунд для выполнения.Я только что уменьшил количество строк, но это все еще более 1 миллиона строк.
SELECT ALM_TAGNAME as 'tag', count(*) as 'cnt' FROM Alarmes WHERE ALM_LOGNODENAME='plantid' GROUP BY ALM_TAGNAME;
CREATE TABLE Alarmes
(
ALM_NATIVETIMEIN
datetime NOT NULL, ALM_NATIVETIMELAST
datetime по умолчанию NULL, ALM_LOGNODENAME
varchar (50) набор символов utf8 по умолчанию NULL,
ALM_PHYSLNODE
набор символов varchar (50) utf8 по умолчанию NULL, ALM_TAGNAME
набор символов varchar (50) utf8 по умолчанию NULL, ALM_TAGDESC
набор символов varchar (50) utf8 по умолчанию NULL,
ALM_VALUE
varchar (50)набор символов utf8 по умолчанию NULL, ALM_UNIT
varchar (50) набор символов utf8 по умолчанию NULL, ALM_MSGTYPE
varchar (50) набор символов utf8 по умолчанию NULL,
ALM_DESCR
varchar (255) набор символов utf8 по умолчанию NULL, ALM_ALMSTATUS
varchar (50) набор символов utf8 по умолчанию NULL, ALM_ALMPRIORITY
varchar (50) набор символов utf8 по умолчанию NULL,
ALM_ALMAREA
varchar (50) набор символов utf8 по умолчанию NULL,
ALM_ALMEXTFLD1
varchar (50)набор символов utf8 по умолчанию NULL,
ALM_ALMEXTFLD2
varchar (50) набор символов utf8 по умолчанию NULL, ALM_OPNAME
varchar (50) набор символов utf8 по умолчанию NULL, ALM_OPFULLNAME
varchar (50) набор символов utf8 по умолчанию NULL,
ALM_OPNODE
varchar (50) набор символов utf8 по умолчанию NULL, ALM_PERFNAME
varchar(50) набор символов utf8 по умолчанию NULL, ALM_PERFFULLNAME
varchar (50) набор символов utf8 по умолчанию NULL,
ALM_PERFBYCOMMENT
varchar (50) набор символов utf8 по умолчанию NULL,
ALM_VERNAME
набор символов varchar (50)utf8 по умолчанию NULL,
ALM_VERFULLNAME
набор символов varchar (50) utf8 по умолчанию NULL,
ALM_VERBYCOMMENT
набор символов varchar (50) utf8 по умолчанию NULL,
ALM_DATEIN
набор символов varchar (50) по умолчанию utf8NULL, ALM_TIMEIN
varchar (50) набор символов utf8 по умолчанию NULL, ALM_DATELAST
varchar (50) набор символов utf8 default NULL,
ALM_TIMELAST
varchar (50) набор символов utf8 по умолчанию NULL, KEY Alarmes_tagname
(ALM_TAGNAME
),
КЛЮЧ Alarmes_lognodname
(ALM_LOGNODENAME
))
EXPLAIN SELECT ALM_TAGNAME as 'tag', count(ALM_TAGNAME) as 'cnt' FROM monitor.Alarmes WHERE ALM_LOGNODENAME='bogota' GROUP BY ALM_TAGNAME; +----+-------------+---------+------+--------------------+--------------------+---------+-------+-------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+--------------------+--------------------+---------+-------+-------+----------------------------------------------+
| 1 | SIMPLE | Alarmes | ref | Alarmes_lognodname | Alarmes_lognodname | 153 | const | 86143 | Using where; Using temporary; Using filesort |
+----+-------------+---------+------+--------------------+--------------------+---------+-------+-------+----------------------------------------------+
DESCRIBE SELECT ALM_TAGNAME as 'tag', count(ALM_TAGNAME) as 'cnt' FROM monitor.Alarmes WHERE ALM_LOGNODENAME='bogota' GROUP BY ALM_TAGNAME;
+----+-------------+---------+------+--------------------+--------------------+---------+-------+-------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+---------+------+--------------------+--------------------+---------+-------+-------+----------------------------------------------+
| 1 | SIMPLE | Alarmes | ref | Alarmes_lognodname | Alarmes_lognodname | 153 | const | 86154 | Using where; Using temporary; Using filesort |
+----+-------------+---------+------+--------------------+--------------------+---------+-------+-------+----------------------------------------------+