mysql - 大型 MySQL 表更新速度慢

标签 mysql performance scalability sql-update

嗨,这是我的表格结构

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_INCRMENT=1947722 ;

我有大约 200 万行,所以当我在这里对 R_status 进行更新时,它似乎花费了太长的时间(R_status 是 1、2、16 或 24)。 请建议如何优化。

最佳答案

如果 R_status 始终为整数,则将其设为整数。 另外,我会尝试将此表转换为固定行宽格​​式(无 varchars/texts)

此外,在 R_smppid 上创建索引,否则它会在每次更新时进行全表扫描。

关于mysql - 大型 MySQL 表更新速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3634111/

相关文章:

mysql - 优化卡在 "Creating sort index"上的简单 MySQL GROUP BY 查询

mysql - 如何在 MySQL 中同时查询帖子和帖子赞成票?

c - 我该怎么做才能始终定义 CLOCK_MONOTONIC?

java - Java EE 应用程序的可扩展性。你会如何处理它?

scalability - Apache Jena 可以横向扩展吗?

java - 我如何从Java连接到mysql服务器?

mysql不在日期时间中存储微秒,但在where条件下使用?

Java 8 何时进行流式传输以及为何进行流式传输

java - 为什么线程创建被认为是一个昂贵的过程?

java - 考虑 "if"语句和异常的长期性能成本