我在表中有 3000 万条记录,但是当试图从那里找到其中一条记录时,我将花费很多时间来检索。您能否建议我如何需要以这种方式生成行键,以便我们可以快速获取记录。
现在,我已经将 1、2、3 的自动增量 ID 作为行键,以及需要采取哪些步骤来提高性能。让我知道你的担忧
我在表中有 3000 万条记录,但是当试图从那里找到其中一条记录时,我将花费很多时间来检索。您能否建议我如何需要以这种方式生成行键,以便我们可以快速获取记录。
现在,我已经将 1、2、3 的自动增量 ID 作为行键,以及需要采取哪些步骤来提高性能。让我知道你的担忧
通常,当我们考虑 SQL 结构化表的性能时,我们会遵循一些基本/一般的调整,例如对查询中使用的列应用适当的索引。对表应用适当的逻辑分区或分桶。给缓冲区足够的内存来做一些复杂的操作。
当涉及到大数据时,特别是如果您使用 hadoop,那么真正的问题在于硬盘和缓冲区之间的上下文切换。以及不同服务器之间的上下文切换。您需要确定如何减少上下文切换以获得更好的性能。
一些注意事项:
使用解释功能了解查询结构并尝试提高性能。
如果您使用整数行键,那么它将提供最佳性能,但始终在表的开头创建行键/索引。因为后来性能杀。
在 Hive / Impala 中针对 hbase 表创建外部表时,将 hbase 行键映射到 Hive / Impala 中的字符串列。如果不这样做,则不会在查询中使用行键并扫描整个表。
永远不要在行键查询中使用 LIKE ,因为它会扫描整个表。使用 BETWEEN 或 = 、 < 、 >=。如果您没有对查询中的行键列使用过滤器,则您的行键设计可能是错误的。行键应设计为包含查找特定数据子集所需的信息