索引和分片的区别是什么

问题描述 投票:8回答:2

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

indexing terminology sharding
2个回答
11
投票

索引是一种在数据结构中存储列值以便快速搜索的方法。与全表扫描相比,这极大​​地加快了搜索速度,因为并非所有行都必须进行检查。您应该考虑在WHERE子句中的列上使用索引。

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


1
投票

索引是将列值存储在数据结构中的过程,如B-Tree或Hashing。它使搜索或连接查询比没有索引更快,因为查找值需要更少的时间。分片是在多台机器中分割单个表。对于索引和搜索,有必要选择适当的密钥。

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

© www.soinside.com 2019 - 2024. All rights reserved.