在Apache Ignite Sql查询的Update子句中使用索引



如何选择一个索引用于这样的UPDATE子句。我需要指定WHERE子句中使用的列的索引吗?

UPDATE
DB.MY_TABLE
SET
BLOCKED = true,
HOME = '1',
WORK = '2',
WHERE
NAME = 'Me';

列"NAME"使用INDEX_NAME进行索引,但其他列也使用其他索引进行索引。我想做一些类似的事情来指定我正在使用的索引(这似乎只适用于SELECT子句(:

SELECT
*
FROM
DB.MY_TABLE
USE INDEX(INDEX_NAME)
WHERE
NAME = 'Me';

Ignite在撰写本文时如何执行这些查询,是通过将查询拆分为两部分:

  1. SELECT,条件与原始查询中指定的条件相同
  2. SELECT结果进行迭代,并按照SET子句中的指定更新每条记录

通常很容易根据原始查询猜测SELECT部分的样子。在您的情况下,我确信SELECT * FROM DB.MY_TABLE WHERE Name = 'Me'是将要执行的查询。

我只想检查EXPLAIN SELECT * FROM DB.MY_TABLE WHERE Name = 'Me'是否使用了您希望它使用的索引,然后相信系统会正确地执行UPDATE

最新更新