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

Using index in Update Clause on Apache Ignite Sql Query

我如何选择索引以用于像这样的 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 如何执行这些查询 - 在撰写本文时 post - 是将查询分成两部分:

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

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

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