MySQL命令慢

时间:2017-03-17 15:02:49

标签: mysql database

我有一个barnyard2并且正在运行。

我试图加入3个表,其中自我运作正常。 在通过cid订购select时,它的速度非常慢。 在这里,您可以看到两个选择以及它们之间的时间。

按顺序运行:

StackPanel

按订单运行:

mysql> SELECT event.sid, event.cid, event.timestamp, iphdr.ip_src, iphdr.ip_dst, 
      signature.sig_name 
      FROM event 
      INNER JOIN iphdr 
      ON event.cid=iphdr.cid 
      INNER JOIN signature 
      ON event.signature=signature.sig_id 
      WHERE sig_name like 'ICMP%' limit 10;
<.....>
10 rows in set (0.02 sec)

desc事件;

mysql> SELECT event.sid, event.cid, event.timestamp, iphdr.ip_src, iphdr.ip_dst, 
          signature.sig_name 
       FROM event 
       INNER JOIN iphdr 
       ON event.cid=iphdr.cid 
       INNER JOIN signature 
       ON event.signature=signature.sig_id 
       WHERE sig_name like 'ICMP%' 
       order by event.cid desc limit 10;
<.....>
10 rows in set (6 min 1.52 sec)

desc签名;

 +-----------+------------------+------+-----+---------+-------+
 | Field     | Type             | Null | Key | Default | Extra |
 +-----------+------------------+------+-----+---------+-------+
 | sid       | int(10) unsigned | NO   | PRI | NULL    |       |
 | cid       | int(10) unsigned | NO   | PRI | NULL    |       |
 | signature | int(10) unsigned | NO   | MUL | NULL    |       |
 | timestamp | datetime         | NO   | MUL | NULL    |       |
 +-----------+------------------+------+-----+---------+-------+
 4 rows in set (0.00 sec)

desc iphdr;

 +--------------+------------------+------+-----+---------+----------------+
 | Field        | Type             | Null | Key | Default | Extra          |
 +--------------+------------------+------+-----+---------+----------------+
 | sig_id       | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
 | sig_name     | varchar(255)     | NO   | MUL | NULL    |                |
 | sig_class_id | int(10) unsigned | NO   | MUL | NULL    |                |
 | sig_priority | int(10) unsigned | YES  |     | NULL    |                |
 | sig_rev      | int(10) unsigned | YES  |     | NULL    |                |
 | sig_sid      | int(10) unsigned | YES  |     | NULL    |                |
 | sig_gid      | int(10) unsigned | YES  |     | NULL    |                |
 +--------------+------------------+------+-----+---------+----------------+
 7 rows in set (0.00 sec)

自从我在MySQL工作以来已经很长时间了,所以我的查询并不是那么好。

1 个答案:

答案 0 :(得分:1)

您似乎没有event.cid的索引。 主键的一部分,但如果它是该键中的第二个,则可用于排序。你的订单很慢。

如果你看一下EXPLAIN,你可能会看到它。请执行EXPLAIN,然后为该列添加索引,并再次检查EXPLAIN。它可能会有所帮助:)