将 mysql 表拆分成较小的表而不进行物理分配有什么好处?

将 mysql 表拆分成较小的表而不进行物理分配有什么好处?

我在公司见过这样的设计。

一个大的 mysql 表被分割成几十个较小的表,这些表在同一个服务器上的同一个数据库中具有相同的模式,没有任何物理分布,没有表 1. innodb_file_per_table,没有分区等。数据分布均匀,并且所有表的读/写访问模式都是统一的。

从性能角度来看这样做有什么好处?

答案1

如果你的读/写分布均匀,我认为没有性能优势。如果你的写入量很大,并且只写入 2-3 个表,那么你可以从中受益(参见幻灯片 28-34推介会)。

关于运营效益的几点想法:

  • 一旦数据或流量过多,扩展/分片就会变得更容易。
  • 根据备份方式,如果您可以确定丢失的数据位于哪个表中,则恢复速度可能会更快。

编辑:还有一个想法:如果查询并行执行,可能会有性能优势 - 您可以从 RAID 中获得更多 IOPS,并且如果工作集适合内存,则可以更好地实现多核系统的本地化。

相关内容