当人们谈论使用“分片”扩展网站时,他们是什么意思?

发布于 2024-07-04 12:43:36 字数 56 浏览 11 评论 0原文

我曾多次听到关于解决大型网站的扩展问题的“分片”技术。 这种“碎片”技术是什么?为什么它这么好?

I have heard the 'shard' technique mentioned several times with regard to solving scaling problems for large websites. What is this 'shard' technique and why is it so good?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

淡水深流 2024-07-11 12:43:36

Karl Seguin 有一个不错的博客关于分片的帖子。

来自帖子:

分片是将您的
跨多个服务器的数据。 你怎么
分离您的数据取决于您,但是
一般是在一些上完成的
基本标识符。

Karl Seguin has a good blog post about sharding.

From the post:

Sharding is the separation of your
data across multiple servers. How you
separate your data is up to you, but
generally it’s done on some
fundamental identifier.

起风了 2024-07-11 12:43:36

简而言之,想象一下将 users_tbl 分布在多个服务器上。 因此,用户 1-5000 在服务器 1 上,用户 5000-10000 在服务器 2 上; 等等。如果您的数据模型在代码中足够抽象,那么通常不会对代码进行巨大的更改。

当然,如果您的所有查询都类似于“SELECT COUNT(*) FROM users_tbl GROUP BY userType”,那么这种方法会变得很困难,但是当您的 where 是“WHERE userid = 5”时,它就更有意义了。

In brief, imagine seperating your users_tbl across several servers. So Users 1-5000 and on Server 1, Users 5000-10000 on Server 2; etc. If your data model is sufficiently abstract in code, it's often not a huge change in code.

Of course this approach becomes difficult if all your queries are similar to "SELECT COUNT(*) FROM users_tbl GROUP BY userType" but when your where is "WHERE userid = 5" then it makes more sense.

孤芳又自赏 2024-07-11 12:43:36

由于“分片”是大型网站架构原则的一部分,您可能有兴趣聆听“Randy Shoup 的 eBay 架构原则”此处

As 'sharding' is part of the architecture principles for large websites, you may be interested in listening to 'eBay's Architecture Principles with Randy Shoup' here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文