我有一個稗2和snort運行。MySQL按緩慢排序
我想加入3個表,它在它自我工作正常。 它是通過cid命令選擇它減慢非常糟糕。 在這裏你可以看到兩個選擇和他們之間的時間。
運行而不爲了通過:
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)
通過與順序運行:
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)
降序事件;
+-----------+------------------+------+-----+---------+-------+
| 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 signature;
+--------------+------------------+------+-----+---------+----------------+
| 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)
desc iphdr;
+----------+----------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+----------------------+------+-----+---------+-------+
| sid | int(10) unsigned | NO | PRI | NULL | |
| cid | int(10) unsigned | NO | PRI | NULL | |
| ip_src | int(10) unsigned | NO | MUL | NULL | |
| ip_dst | int(10) unsigned | NO | MUL | NULL | |
| ip_ver | tinyint(3) unsigned | YES | | NULL | |
| ip_hlen | tinyint(3) unsigned | YES | | NULL | |
| ip_tos | tinyint(3) unsigned | YES | | NULL | |
| ip_len | smallint(5) unsigned | YES | | NULL | |
| ip_id | smallint(5) unsigned | YES | | NULL | |
| ip_flags | tinyint(3) unsigned | YES | | NULL | |
| ip_off | smallint(5) unsigned | YES | | NULL | |
| ip_ttl | tinyint(3) unsigned | YES | | NULL | |
| ip_proto | tinyint(3) unsigned | NO | | NULL | |
| ip_csum | smallint(5) unsigned | YES | | NULL | |
+----------+----------------------+------+-----+---------+-------+
14 rows in set (0.00 sec)
它一直以來我在MySQL工作了很長很長時間,所以我的查詢並不好。
請發佈一個解釋。乍看之下,我會說這是因爲event.cid是sid和主鍵的一部分,因此您的查詢不能使用該索引進行排序。 –