为 ~10B 对象设计对象存储并使用 mySQL 存储元数据。我们知道我们需要分片,并且正在寻找通用的启发式方法来扩展。希望得到指点并了解你们都使用的粗略计算
最佳答案
您不知道需要分片。先找出来。
按优先顺序:
- 更高效地使用单个服务器。
- 进行功能分区(将应用的不同部分放在不同的服务器上)
- 进行垂直分区(将不同的列分开)
- 进行水平分区(即“分片”)
这是因为复杂性会影响您的应用程序。可以很容易地在一台服务器中拥有一个包含 10B 行的表并期望良好的性能;这在很大程度上取决于您的用例 - 行有多大以及您正在执行多少查询/更新。
好的设计永远是关键;良好的应用程序设计至少与良好的数据库设计同样重要。
不要假设。测试。
为您的性能实验室购买大量硬件。不要为生产购买任何产品(目前)。
关于mysql - MySQL 的分片启发式算法是什么 - 每个表的记录数和每个实例的表数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145047/