在PostgreSQL中,"seq scan"和"index scan"是查询执行计划中的两种不同的访问方式。
顺序扫描(Seq Scan):
当PostgreSQL执行一个顺序扫描时,它会扫描表中的每一行,不使用索引。这种扫描通常用于访问小表或者没有可用索引的情况。
示例SQL查询:
SELECT * FROM my_table;
索引扫描(Index Scan):
当PostgreSQL执行一个索引扫描时,它会首先扫描索引,然后通过索引中的指针回到表中检索对应的行。索引扫描通常用于访问大表的某些特定行,因为它可以减少需要读取的数据量。
示例SQL查询(使用B-tree索引):
SELECT * FROM my_table WHERE my_column = 'some_value';
在实际使用中,你可以通过EXPLAIN语句查看查询的执行计划,从而确定PostgreSQL是使用顺序扫描还是索引扫描。例如:
EXPLAIN SELECT * FROM my_table WHERE my_column = 'some_value';
执行上述EXPLAIN命令将显示查询的执行计划,包括是否使用了索引扫描以及使用的索引。
注意:本文归作者所有,未经作者允许,不得转载