mysql innodb:删除需要几秒钟

时间:2013-08-15 11:17:07

标签: mysql innodb

我不知道,为什么在innodb表上删除需要大约30秒

表有4码行

ID

的索引

KID索引

(那只是索引,没有主要,没有唯一因为表是分区的) 表是分区的

 delete from my_table where id = 'xxx' and kid = 'ds54f5sad6w5' limit 1

在慢速日志中 查询时间39秒 锁定时间36秒 行检查96879

问题出在磁盘(使用ssd)

解释从my_table选择sql_no_cache * WHERE id ='1663903'AND kid ='84d4af871929d2159d7d7399a79bb384'LIMIT 1

解释写

id select_type table    type        possible_keys key    key_len ref  rows Extra
1  SIMPLE      my_table index_merge id,kid        id,kid 3,98    NULL 1    Using intersect(id,kid); Using where

1 个答案:

答案 0 :(得分:0)

您的EXPLAIN显示您的查询使用“index_merge”访问type

因此必须搜索两个索引(这些索引显示在keys字段中),找到相关条目,然后找到两个结果之间的交集。

这可能比非索引搜索更好,但通常最好创建一个包含两列的索引(id,kid)。