我不明白为什么这个(按范围划分)表在此查询中处于全表扫描中:
UPDATE customer_table
SET username = '',
phone = '',
ip = '',
cell = '',
channel = ''
WHERE id = '';
我也创建了这个索引:
CREATE INDEX customer_table_UPD_EXT_SYS ON customer_table
(USERNAME, CLI, IP, MSISDN, CANALE, TN)
任何人都可以帮助我吗?
答案 0 :(得分:0)
要避免全表扫描,索引必须(至少部分地)匹配WHERE
子句。在您的示例中,customer_table.id
上的索引会有所帮助。您的索引customer_table_UPD_EXT_SYS
包含更新的列;关于你的UPDATE
语句,这实际上是坏消息,因为索引也需要更新,这可能比更新表更昂贵。