Phoenix 二级索引适用场景是什么?

问答 (「・ω・)「嘿!offer ⋅ 于 2023-04-23 21:21:58 ⋅ 最后回复由 青牛 2023-04-23 21:39:52 ⋅ 947 阅读

何老师,为什么Phoenix的全局索引适合读多写少情况?本地索引适合读少写多情况?

成为第一个点赞的人吧 :bowtie:
回复数量: 1
  • 青牛 海汼部落创始人,80后程序员一枚,曾就职于金山,喜欢倒腾技术做产品
    2023-04-23 21:39:52

    Phoenix的全局索引适合读多写少的原因有以下几点:

    1. 全局索引是在表中创建的,而不是在特定列上创建的。这意味着对表中任何列的更改都需要更新索引,这可能会对写入性能产生影响。
    2. 全局索引是在整个表上创建的,因此对表中的任何数据更改都需要在索引上执行相应的操作,这会影响写入性能。
    3. 由于全局索引包含整个表的数据,因此在索引上进行查询时,可以快速地找到所需的数据,从而提高了读取性能。此外,Phoenix的查询优化器可以选择在全局索引上执行查询,这将进一步提高读取性能。

    综上所述,Phoenix的全局索引适合读多写少,因为它们可以提高读取性能,但可能会影响写入性能。因此,如果应用程序需要进行大量的写入操作,则不建议使用全局索引。

    Phoenix的本地索引适合读少写多的情况的原因主要有以下几点:

    1. 本地索引只是在表中的某些列上创建的索引,而不是在整个表上创建的索引。这意味着只有对本地索引列进行更改时,才需要更新索引,对于其他列的更改不需要更新索引,因此写入性能不会受到太大影响。
    2. 由于本地索引仅包含表中某些列的数据,因此在索引上进行查询时,只能快速地找到与查询条件匹配的数据。对于其他列的查询仍然需要在主表上执行,因此对于读取性能的提高相对有限。
    3. Phoenix的查询优化器可以根据查询条件选择在本地索引上执行查询,从而提高查询性能。但是,如果查询涉及到的列不在索引列中,则查询性能不会得到提高。

    综上所述,Phoenix的本地索引适合读少写多的情况,因为它们可以提高写入性能,但对于读取性能的提高相对有限。如果应用程序需要进行大量的读取操作,则不建议使用本地索引。

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter