我在表中有3000万条记录,但当我试图从中找到一条记录时,我会花很多时间来检索。你能告诉我如何生成行键,这样我们就可以快速获取记录了。现在,我已经采取自动增量id 1,2,3等作为行键,以及需要采取什么步骤来提高性能。让我知道你的担心
yvgpqqbh1#
一般来说,当我们考虑sql结构化表的性能时,我们会遵循一些基本/常规的调整,比如对查询中使用的列应用适当的索引。对表应用适当的逻辑分区或bucketing。为缓冲区提供足够的内存来执行一些复杂的操作。当谈到大数据时,特别是如果您使用的是hadoop,那么真正的问题在于硬盘和缓冲区之间的上下文切换。以及不同服务器之间的上下文切换。您需要确定如何减少上下文切换以获得更好的性能。注意事项:使用explain特性了解查询结构并尝试提高性能。如果您使用的是整数行键,那么它将提供最佳性能,但总是在表的开头创建行键/索引。因为后来的表演杀人。在hive/impala中针对hbase表创建外部表时,请将hbase行键Map到hive/impala中的字符串列。如果不这样做,查询中将不使用行键,并且扫描整个表。永远不要使用like-in-row键查询,因为它扫描整个表。在或=,<,>=之间使用。如果在查询中不对行键列使用筛选器,则行键设计可能是错误的。行键应该被设计为包含查找特定数据子集所需的信息
1条答案
按热度按时间yvgpqqbh1#
一般来说,当我们考虑sql结构化表的性能时,我们会遵循一些基本/常规的调整,比如对查询中使用的列应用适当的索引。对表应用适当的逻辑分区或bucketing。为缓冲区提供足够的内存来执行一些复杂的操作。
当谈到大数据时,特别是如果您使用的是hadoop,那么真正的问题在于硬盘和缓冲区之间的上下文切换。以及不同服务器之间的上下文切换。您需要确定如何减少上下文切换以获得更好的性能。
注意事项:
使用explain特性了解查询结构并尝试提高性能。
如果您使用的是整数行键,那么它将提供最佳性能,但总是在表的开头创建行键/索引。因为后来的表演杀人。
在hive/impala中针对hbase表创建外部表时,请将hbase行键Map到hive/impala中的字符串列。如果不这样做,查询中将不使用行键,并且扫描整个表。
永远不要使用like-in-row键查询,因为它扫描整个表。在或=,<,>=之间使用。如果在查询中不对行键列使用筛选器,则行键设计可能是错误的。行键应该被设计为包含查找特定数据子集所需的信息