【发布时间】:2011-04-07 17:46:14
【问题描述】:
你好,这是我的表结构
CREATE TABLE IF NOT EXISTS `sms_report` (
`R_id` int(11) NOT NULL auto_increment,
`R_uid` int(11) NOT NULL,
`R_smppid` varchar(100) collate utf8_unicode_ci NOT NULL,
`R_from` varchar(10) collate utf8_unicode_ci NOT NULL,
`R_status` longtext collate utf8_unicode_ci NOT NULL,
`R_message` text collate utf8_unicode_ci NOT NULL,
`R_numbers` longtext collate utf8_unicode_ci NOT NULL,
`R_timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`R_timedate` varchar(40) collate utf8_unicode_ci NOT NULL,
`R_show` int(11) NOT NULL default '1',
`oldformat` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`R_id`)
) ENGINE=MyISAM 默认字符集=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1947722 ;
我有大约 200 万行,所以当我在这里更新 R_status 时,它似乎需要太长时间(R_status 是 1、2、16 或 24)。 请建议如何优化。
【问题讨论】:
-
您是否仅根据
WHERE子句中的R_id进行更新?或其他列?你能发布一个示例UPDATE查询吗? -
示例更新查询将是 update sms_report set R_status=1 where R_smppid=738sbdasdbajsdbdfbfbks782|9898773122
标签: mysql performance scalability sql-update