2024-11-09
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://www.skjava.com/mianshi/baodian/detail/2119216995

在互联网技术圈中有一个说法:「MySQL 单表数据量大于 2000 W行,性能会明显下降」。阿里巴巴《Java 开发手册》提出单表行数超过 500 万行或者单表容量超过 2GB,推荐分库分表。所以亿级别的数据肯定不能放在单表中,如果放在单表中,就算 name 字段有索引,查询效率也不会特别高。所以我们需要采取一些特殊手段:

  1. 数据库分库分表:解决表数据量过大的常见方案,我们可以根据 name 使用一致性 hash 算法将数据均匀地分布到不同的库和表中,减少单一表的数据量,提高查询效率。
  2. 使用搜索引擎:将 name 查询字段同步到搜索引擎(如 ES),搜索引擎可以提供更高效的查询。
  3. 数据仓库和OLAP系统:传统的 OLTP 数据库对大数据量的查询性能可能不是特别好,这个时候我们就可以使用专门为大数据而设计的数据仓库或者 OLAP 系统。
阅读全文