Alter Query所花的时间比任何其他表所花的时间都要多,而其他任何表都比数据库中的要大

时间:2018-12-07 04:44:22

标签: mysql

我们数据库中有一个表,该表要花费大量时间来执行诸如ALTER,OPTIMIZE等查询。有时,普通的select查询会花费很长时间。 该表的大小为5GB,是一个小表,其中包含多于2,00,000行。

kt_ticket_message | CREATE TABLE `kt_ticket_message`(  
`msg_id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
`ticket_id` int(11) unsigned NOT NULL DEFAULT '0',
`messageId` varchar(255) DEFAULT NULL,
`pp_group` int(11) NOT NULL DEFAULT '0',
`msg_type` enum('F','M','R','AR') DEFAULT NULL COMMENT 'F: first, M: message
      by client, R: reply by staff and AR: autoresponse',
`message` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,
`staff_id` int(11) unsigned NOT NULL DEFAULT '0',
`staff_name` varchar(32) NOT NULL DEFAULT '',
`headers` text,
`from_email` varchar(255) NOT NULL COMMENT 'From email  using header',
`to_email` varchar(255) NOT NULL COMMENT 'To email  using header',
`reply_to_email` varchar(255) NOT NULL COMMENT 'Reply to using header',
`cc_email` varchar(255) NOT NULL COMMENT 'CC emails using header or as when
     replied by staff',
`source` varchar(16) DEFAULT NULL,
`ip_address` varchar(64) DEFAULT NULL,
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`status` tinyint(1) DEFAULT '0' COMMENT 'Use to maintain revision history of 
         ticket for reporting. 0 = Open, 1 = Closed, 2 = Hold',
`test` varchar(255) NOT NULL DEFAULT '0' COMMENT 'testing the alter',
`test_2` text NOT NULL COMMENT 'testing again',
PRIMARY KEY (`msg_id`),
KEY `ticket_id` (`ticket_id`),
KEY `msgId` (`messageId`),
KEY `idx_comp` (`pp_group`,`status`,`created`),
KEY `testing_idx` (`msg_id`,`ticket_id`),
FULLTEXT KEY `message` (`message`)
)
ENGINE=InnoDB AUTO_INCREMENT=279508 DEFAULT CHARSET=utf8 |

这是表结构,请检查一次,看看是否可以发现任何问题。 问题是,在运行更改查询或优化查询时,如果出现插入查询,则查询将在中间停止,并留下一个以#SQL-开头的临时文件。

到目前为止,还没有解决方案,所以我只能删除数据库,然后再次从备份中导入它。感谢您的任何建议。

0 个答案:

没有答案