我们的数据库中有一个表,执行alter、optimize等查询需要花费大量时间。有时,普通的select查询需要花费很长时间。表的大小是5gb,它是一个包含200000多行的小表。
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 |
这是表格结构,请检查一下,看是否能发现任何问题。问题是在运行alter或optimize查询时,如果插入查询,则查询会在中间停止,并留下一个以#sql-开头的临时文件。
到目前为止还没有解决方案,所以我只能删除数据库并从备份中再次导入它。谢谢你的建议。
暂无答案!
目前还没有任何答案,快来回答吧!