【问题标题】:what is the difference in indexing and sharding索引和分片有什么区别
【发布时间】:2011-08-16 19:50:09
【问题描述】:

索引和分片有什么区别。两者的作用是什么?

【问题讨论】:

    标签: indexing terminology sharding


    【解决方案1】:

    索引是一种将列值存储在旨在快速搜索的数据结构中的方法。与全表扫描相比,这极大​​地加快了搜索速度,因为不必检查所有行。您应该考虑在 WHERE 子句中的列上设置索引。

    分片是一种在不同机器之间拆分表的技术。这使得查询的并行解析成为可能。例如,可以在一台机器上搜索一半的表,而在另一台机器上搜索另一半。这在某些情况下可以通过添加更多硬件来提高性能,尤其是对于大型表。

    【讨论】:

      【解决方案2】:

      索引是将列值存储在 B-Tree 或散列等数据结构中的过程。它使搜索或连接查询比没有索引更快,因为查找值花费的时间更少。分片是将单个表拆分到多台机器上。对于索引和搜索,都需要选择适当的键。

      对于大型表,您应该同时考虑索引和分片。例如,考虑一个有 100 万行的表 X。如果您在表 X 中搜索键 K,查询处理将直接跳转到包含该键的 R 行并将 R 返回给用户。如果您在大多数情况下没有超过存储限制,则不需要对表进行分片。如果超出存储限制,则必须进行分片。对小表进行分片没有任何好处,因为它会导致额外的网络开销和聚合子查询。

      【讨论】:

        猜你喜欢
        • 2016-07-04
        • 1970-01-01
        • 2014-06-19
        • 2014-08-07
        • 1970-01-01
        • 2023-03-04
        • 2016-06-24
        • 2020-01-26
        • 1970-01-01
        相关资源
        最近更新 更多