当数据库变大时如何扩展?

6 mysql

我正在创建一个可以很快吸引大量用户的项目,我想知道从一开始就应该考虑的建议方法是什么。

我正在用 PHP 框架和 MYSQL 开发它,就我的知识允许而言都进行了优化:PI 基本上想从小处开始......我的意思是在一个简单的 VPS 上运行并根据需要扩展到更好的硬件,但最后我在想一个数据库的表可能会成为一个真正的问题。基本上会有一个表来存储每个用户每天可以做 100 次的活动(我不会详细介绍)所以考虑到将来我会有,比如说,每天有 10k 用户这样做我会得到一个点每天数百万个新数据(即使它只存储 2-3 个数字)。而这个表即使在每次访问时都没有被查询来检索数据,而只是在 INSERT 中,我需要读取它并操作数据...... 1 万亿行会发生什么?我不是专家,但我'

所以我的问题是:

  • 我应该从另一种数据库方法开始吗?MYSQL 前面的东西是为大表制作的吗?有的话!
  • 大型网站如何处理这些事情?他们将行的“部分”存储在多台服务器上?
  • 考虑到不是无限的,可以为此表使用简单的 BIGINT(主键)吗?我读到使用 varchars 作为主键会显着减慢数据库的速度。
    • 像 AWS 这样的服务可以透明地为我做这件事吗?

谢谢你。

小智 4

一些建议您阅读:

  1. http://highscalability.com/ 关于扩展网站的最伟大的博客。那里有大量精彩的信息。

  2. 阅读有关分片的内容。 http://en.wikipedia.org/wiki/Shard_(database_architecture)