我有一个具有以下结构的表:
Id (Int), Telephone_Number (Int), Name (VARCHAR), Address (VARCHAR)
我希望为此 SELECT 查询创建一个覆盖索引:
SELECT Id FROM mytable WHERE Telephone_Number = '55442233';
我了解覆盖索引会删除磁盘 I/O 的数量,因为索引存储在内存缓存中,从而提高了性能。
对于我的 SELECT 查询,我是否正确地说,由于 WHERE 子句需要访问 Telephone_Number 值,所以将 Id 设为索引不会消除对磁盘 I/O 的需求?
如果是这样,综合指数是否(Id, Telephone_Number)
可以作为覆盖指数?还是覆盖索引必须是单列的?