【发布时间】:2011-06-22 10:08:03
【问题描述】:
如果列是 int 类型,是否还需要对其进行索引以使 select 查询运行得更快?
SELECT *
FROM MyTable
WHERE intCol = 100;
【问题讨论】:
如果列是 int 类型,是否还需要对其进行索引以使 select 查询运行得更快?
SELECT *
FROM MyTable
WHERE intCol = 100;
【问题讨论】:
是的。列具有哪种数据类型并不重要。如果您不指定索引,则 mysql 必须在您使用该列搜索值时扫描整个表。
【讨论】:
是的,任何列上的索引都可以使查询执行得更快,而不管数据类型如何。数据本身很重要——如果系统中当前只有两个值,那么使用索引毫无意义。
还要注意:
【讨论】:
是的,索引的重点是您可以通过primary key 或手动添加索引来创建它们。列的类型并没有说明查询的速度。
【讨论】:
是的,它必须被索引。如果将 tinyint 列用作布尔值,则对它们进行索引是没有意义的,因为该索引的选择性不够。
【讨论】:
可能是的,除非
在这种情况下,表扫描可能更有意义,优化器可能会选择这样做。在大多数情况下,无论如何拥有索引并不是很有害,但您绝对应该尝试并查看(在您的实验室中,在具有类似生产数据集的生产级硬件上)
【讨论】: