MySQL单表最大记录数超过多少时性能会严重下降?

这是一个危险。
不要假设任何一张表的数据量都有上限。
硬件和查询模式决定了重点。

phpstudy自带mysql单表支持多少条数据

说实话,很难概括 PHPStudy 自带的单个 MySQL 表可以容纳多少数据。
我曾经帮朋友调试过一个电子商务系统。
他使用的是PHPStudy环境。
当结果表中的数据太多时,查询速度会像蜗牛一样变慢。

我们先来说说存储引擎。
MyISAM理论上可以支持2 8 1 万亿条数据,听起来很吓人,但实际上却早已被硬盘容量所阻挡。
我记得有一个案例,运行 PHPStudy 的开发环境使用的是 MyISAM 表。
当安装在2 00GB内存时,查询直接被阻塞。
迁移到 InnoDB 会好得多,但它不是无限的。
客户使用InnoDB创建一个大表。
最终由于表空间设计的问题,内存到了5 0GB的时候CPU就开始抖动了。

操作系统的限制更让人头疼。
我的服务器是旧版本的 Windows Server,并使用 FAT3 2 文件系统。
结果连接客户端后,表数据一超过4 GB就报错。
后来我直接改成了NTFS。
有趣的是,Linux的ext4 系统要好得多,但这取决于版本。
我记得有一篇文章说 ext4 在 2 TB 以上会出现一些小问题,但这只是几年前的测试。
表现是最差的。
我已经接手了一个项目。
表数据不足2 GB,但查询速度极慢。
检查后发现索引做得不好,有几十个TEXT字段。
后来我改用VARCHAR并添加了复合索引,速度快了十倍。
还有一个案例,客户坚持要在一个表中存储2 000万条数据。
结果,每个查询都必须从硬盘读取,后端立即流行起来。
最后通过表库拆分的方式保存下来。

硬件配置也很关键。
我自己的开发机,1 6 GB内存,SSD硬盘,加载5 000万条数据的时候勉强能用,但是客户端的1 TB内存的服务器,加载1 亿条数据的时候跑得很快。
当时不太明白,后来查了资料发现大内存可以缓存更多的索引和数据,直接影响性能。

最后,说实话。
我建议进行压力测试并使用 sysbench 运行它。
某公司进行测试时,表数据加载到 1 .5 GB 时,几秒钟内查询结果仍然可用,但加载到 2 GB 时就开始冻结。
所以我们不能只考虑理论值,还要与经济情景结合起来。
我有一个朋友做ERP系统,有很多表数据,所以他最终使用了分布式数据库来解决问题。
坦白讲,单个表的容量没有绝对的上限,但如果太大的话,可能不如将表拆分到单独的数据库中那么高效。