我在mysql数据库中有下表:
CREATE TABLE `chronologicallists` (
`sno` int(250) NOT NULL AUTO_INCREMENT,
`empSno` int(11) NOT NULL,
`dateOfHearing` date DEFAULT NULL,
`stageOfProceedings` text CHARACTER SET latin1,
`isDecided` tinyint(1) DEFAULT '0',
`caseSno` int(11) NOT NULL,
`isCurrent` tinyint(1) DEFAULT '1',
`isOut` tinyint(1) DEFAULT '0',
`isTransferred` tinyint(1) DEFAULT '0',
`c_position` smallint(2) DEFAULT '1',
`d_method` smallint(2) NOT NULL DEFAULT '0',
`reason_for_delay` text CHARACTER SET latin1 NOT NULL,
PRIMARY KEY (`sno`)
) ENGINE=MyISAM AUTO_INCREMENT=274926 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
在过去的两年多时间里,这个表运行得很好,但从3天起,它就一直在查询DML执行。在执行3到4个DML查询后,执行同一个查询会花费太多时间吗?似乎还有任何其他进程将自己连接到mysqld,从而导致mysql执行挂起。
我使用的是windows 2012 Server-2 64位mysql版本为5.6.4。此表的总大小为:30 MB
请指导我如何提高查询性能?
简单查询示例:
select COUNT(sno) as total from chronologicallists;
执行
OPTIMIZE TABLE chronologicallists
以更新索引统计信息并释放未使用的磁盘空间。