这个说法并不准确,MySQL 每张表最大可存储数据量取决于多个因素,例如服务器硬件性能、MySQL 版本、表结构设计、存储引擎等。因此,无法简单地说出一张表最好不超过多少数据。
在 MySQL 中,每种存储引擎都有其各自的特点和限制。例如,MyISAM 存储引擎不支持事务和行级锁,但是可以支持非常大的表和高并发查询。而 InnoDB 存储引擎支持事务和行级锁,但是在大表上的性能表现可能不如 MyISAM。
另外,表结构设计也会影响 MySQL 表的最大可存储数据量。例如,对于一个包含大量重复数据的表,可以考虑进行数据分离或压缩,以减小表的大小和提高查询性能。
因此,MySQL 每张表最好不超过2000万数据这个说法并不准确,需要根据具体的环境和需求来进行评估和设计。
假设有一个 MySQL 数据库,服务器硬件性能较好,MySQL 版本为 8.0,存储引擎选择 InnoDB。在这种情况下,每张表的最大可存储数据量可以达到数十亿行,与表的大小无关。这是因为 MySQL 8.0 中 InnoDB 存储引擎默认采用了行格式 COMPRESSED,可以对数据进行压缩,减小数据存储的空间占用。
另外,如果表中包含大量重复数据,可以使用 MySQL 中的压缩表功能(Compressed Tables),将重复数据进行压缩存储,从而减小表的大小和提高查询性能。例如,可以使用以下语句创建一个压缩表:
CREATE TABLE `table_name` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`column1` varchar(30) NOT NULL,
`column2` varchar(50) NOT NULL,
`column3` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED KEY_BLOCK_SIZE=8;
在上述语句中,ROW_FORMAT=COMPRESSED 表示采用行格式为压缩格式,KEY_BLOCK_SIZE=8 表示使用 8KB 大小的压缩块。使用压缩表可以减小表的大小,提高查询性能,但也会增加写入时的 CPU 开销。
文章转载自后端Q,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




