私は納屋2とsnortを実行しています。MySQL低速で注文する
私は3つのテーブルに参加しようとしていますが、それは自己でうまく動作します。 これは、Cidで選択すると本当に悪くなります。 ここでは、2つの選択とそれらの間の時間が表示されます。順に実行
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)
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 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で作業して以来、長い時間が経ちました。私のクエリはあまり良くありません。
EXPLAINを投稿してください。一見すると、event.cidはsidと一緒にプライマリキーの一部であるため、クエリではそのインデックスをソートに使用できないためです。 –