📜  Cassandra 3.0 中的本地索引和物化视图

📅  最后修改于: 2021-09-10 02:06:07             🧑  作者: Mango

先决条件——索引的概念,物化视图的概念
在本文中,我们将了解如何进行本地索引及其工作原理以及物化视图在内部是如何工作的。

让我们一一讨论。

首先,我们需要创建一个表。让我们考虑一个表 Team_data,其中 id、name、address 是字段。
我们来看一下。

CREATE TABLE Team_data
(
 id uuid PRIMARY KEY,
 name text,
 address text
); 

现在,向表(Team_data)中插入一些数据。我们来看一下。

Insert into Team_data(id, name, address) 
values(uuid(), 'ashish gupta', 'mumbai');

Insert into Team_data(id, name, address) 
values(uuid(), 'shivang', 'delhi');

Insert into Team_data(id, name, address) 
values(uuid(), 'gaurav', 'bangalore'); 

让我们看看结果来验证插入的数据。

select * 
from Team_data; 

输出:

现在,我们将在 Team_data 表的名称列中创建本地索引(customer1)。我们来看一下。

create index customer1 on Team_data(name); 

现在,我们要搜索我们需要的数据。
我们来看一下。

select address, name 
from Team_data
WHERE name = 'shivang'; 

输出:

现在,在这里我们将看到上述 CQL 查询如何以图形方式工作和执行。
我们来看一下。

在上图中,坐标节点首先将消息发送到整个环上的所有节点,并考虑表(Team_data)的每一行都有三个副本,然后它将在每个节点的索引基础上搜索数据响我们正在寻找的东西。

现在,在这里我们将看到同一个表 (Team_data) 的物化视图如何在与上述相同的场景中工作。首先,我们将创建物化视图。
我们来看一下。

create materialized view customer2 as select * 
from Team_data 
where name IS NOT NULL
PRIMARY KEY(name, id); 

现在,当我们再次执行 CQL 查询时,在物化视图中,首先将在每个节点对数据进行索引,这样可以更容易地快速搜索数据,并且性能也会提高。我们来看一下。

select address, name from Team_data
WHERE name = 'shivang'; 

输出:

现在,我们将看到上述 CQL 查询如何用于上述相同场景中的物化视图。
我们来看一下。