Maszyna fizyczna zaczyna wykazywać ogromne zapotrzebowanie na CPU. W slowlogu pojawia się taki, bądź podobny (patrz wpisy dotyczące formatu slowlogów: standardowy i rozszerzony) wpis:

# Time: 100517 13:25:07
# User@Host: root[root] @ localhost []
# Thread_id: 19484  Schema: test
# Query_time: 0.615715  Lock_time: 0.000084  Rows_sent: 0  Rows_examined: 1497474  Rows_affected: 0  Rows_read: 1497474
# Bytes_sent: 411  Tmp_tables: 0  Tmp_disk_tables: 0  Tmp_table_sizes: 0
# QC_Hit: No  Full_scan: Yes  Full_join: No  Tmp_table: No  Tmp_table_on_disk: No
# Filesort: No  Filesort_on_disk: No  Merge_passes: 0
# No InnoDB statistics available for this query
SET timestamp=1274095507;
SELECT * FROM links WHERE a = '3457013470' AND f = '78uhimkq3no5ekk' AND ip = '165.72.200.11' AND data > '2009-05-17, 07:27';

Bezpośrednią przyczyną wystąpienia problemu jest to, że wykonywany jest pełny skan tabeli. W rozszerzonym logu jest to napisane wprost, można też wywnioskować to z faktu, że wartości Rows_examined i Rows_read są takie same. Explain potwierdza brak indeksu:

mysql> EXPLAIN SELECT * FROM links WHERE a = '3457013470' AND f = '78uhimkq3no5ekk' AND ip = '165.72.200.11' AND data > '2009-05-17, 07:27';
+----+-------------+-------+------+---------------+------+---------+------+---------+-------------+
| id | select_type | table | type | possible_keys | key  | key_len | ref  | rows    | Extra       |
+----+-------------+-------+------+---------------+------+---------+------+---------+-------------+
|  1 | SIMPLE      | links | ALL  | NULL          | NULL | NULL    | NULL | 1497474 | Using where |
+----+-------------+-------+------+---------------+------+---------+------+---------+-------------+
1 row in set (0,00 sec)

czytaj dalej…