库、表和数据量
在 MySQL 单实例中,推荐的库、表数量以及单表存储的数据量会受到很多因素的影响,包括硬件配置、业务需求、并发量、表的复杂度等。不过,可以根据一些通用的最佳实践来做初步的规划:
一个 MySQL 实例内一般不超过 100 个库。虽然 MySQL 支持上千个数据库,但过多的数据库可能会导致管理复杂性增加,特别是在备份、恢复和运维方面。同时,过多的库也可能增加元数据的开销和查询开销。
每个库不超过 500 张表。MySQL 对单库表数量的支持是非常大的,但考虑到文件系统的管理能力和元数据的效率,一般建议每个库的表数保持在合理范围内(如 500 张表以内)。这能保证管理和操作的方便性。
每张表建议不超过 500 万到 1000 万条数据。虽然 InnoDB 存储引擎可以存储非常大量的数据,但随着表的行数增加,索引维护、查询性能等方面的开销也会增大。因此,一般通过分库分表的方式将表的大小控制在合理范围内(如 500 万到 1000 万行),以保证性能的可控性。