如何选择一个索引用于这样的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在撰写本文时如何执行这些查询,是通过将查询拆分为两部分:
SELECT
,条件与原始查询中指定的条件相同- 对
SELECT
结果进行迭代,并按照SET
子句中的指定更新每条记录
通常很容易根据原始查询猜测SELECT
部分的样子。在您的情况下,我确信SELECT * FROM DB.MY_TABLE WHERE Name = 'Me'
是将要执行的查询。
我只想检查EXPLAIN SELECT * FROM DB.MY_TABLE WHERE Name = 'Me'
是否使用了您希望它使用的索引,然后相信系统会正确地执行UPDATE
。