У меня есть следующий InnoDB таблицы:Mysql Slow Вставка
+-----------+-----------+------+-----+-------------------+----------------+
| 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 INTO `staff_online` (`doc_id`, `staff`, `timestamp`) VALUES ('150b60a0ab8c5888bdbbb80bd8b7f8a2', 'asia', '2011-01-29 16:52:54')
Я действительно озадачен, почему это так долго. Как я могу ускорить его?
BTW: Каждый день есть ~ 80 медленных INSERTS и 40 медленных ОБНОВЛЕНИЙ, подобных этому.
Сколько строк в таблице, и вы уверены, что все вставки медленные? –
Есть 277259 строк, и только некоторые вставки медленные (редко). – kalkin
Кажется, у вас есть два индекса: один - «timestamp» другой - «timestamp, staff». Последнее достаточно для поиска по 'timestamp', вы можете отказаться от первого. – 9000