MST

星途 面试题库

面试题:Cassandra CQL索引创建基础

在Cassandra CQL中,如何为一个已有的表创建一个简单的二级索引?请给出具体的CQL语句示例,并解释这样创建索引会对查询性能产生怎样的影响。假设表结构为CREATE TABLE users (id UUID PRIMARY KEY, name TEXT, age INT, email TEXT);
42.4万 热度难度
数据库Cassandra

知识考点

AI 面试

面试题答案

一键面试
  1. 创建二级索引的CQL语句

    CREATE INDEX idx_name ON users (name);
    

    上述语句在users表的name列上创建了一个名为idx_name的二级索引。

  2. 对查询性能的影响

    • 查询性能提升
      • 当使用WHERE name = '某个具体值'这样的条件进行查询时,性能会得到显著提升。因为有了索引,Cassandra无需全表扫描,而是可以直接定位到符合条件的数据。例如,在有大量users数据的情况下,通过索引可以快速找到特定姓名的用户记录,减少查询时间。
    • 写操作性能下降
      • 每次插入、更新或删除操作时,Cassandra不仅要更新表中的数据,还要更新相应的索引。例如,当插入一条新的users记录时,除了将新记录写入表中,还需要在name列的索引结构中添加相应的索引项。这额外的索引更新操作会增加写操作的开销,降低写操作的性能。
    • 存储开销增加
      • 索引本身需要占用额外的存储空间。随着数据量的增加,索引所占用的空间也会相应增大,这可能会对存储资源造成一定压力。