我有以下InnoDB表:mysql的慢插入
+-----------+-----------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-----------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| doc_id | char(32) | NO | | NULL | |
| staff | char(18) | NO | | NULL | |
| timestamp | timestamp | NO | MUL | CURRENT_TIMESTAMP | |
+-----------+-----------+------+-----+-------------------+----------------+
隨着這些鍵:
+--------------+------------+-----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
+--------------+------------+-----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| staff_online | 0 | PRIMARY | 1 | id | A | 277350 | NULL | NULL | | BTREE | |
| staff_online | 1 | timestamp | 1 | timestamp | A | 277350 | NULL | NULL | | BTREE | |
| staff_online | 1 | staff_timestamp | 1 | timestamp | A | 277350 | NULL | NULL | | BTREE | |
| staff_online | 1 | staff_timestamp | 2 | staff | A | 277350 | NULL | NULL | | BTREE | |
+--------------+------------+-----------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
我只注意到in mysql-slow.log
我有時對這個表,需要超過1的INSERT查詢第二個
INSERT INTO `staff_online` (`doc_id`, `staff`, `timestamp`) VALUES ('150b60a0ab8c5888bdbbb80bd8b7f8a2', 'asia', '2011-01-29 16:52:54')
我真的很困惑爲什麼需要這麼長時間。我如何加快速度?
順便說一句:每一天都有〜80緩慢插入和40這樣慢的更新。
表中有多少行,你確定所有的插入都很慢? – 2011-01-29 16:27:15
有277259行,只有一些插入緩慢(罕見)。 – kalkin 2011-01-29 16:33:36
你似乎有兩個索引,一個靠`timestamp`,另一個靠`timestamp,staff`。後者足以通過'timestamp'進行搜索,您可以刪除前者。 – 9000 2011-01-29 17:00:20