使用MySQL中的复合索引快速进行慢速查询

首先让我们看看什么是综合指数-

  • 复合索引是用于多个列的索引。

  • 也称为多列索引。

  • MySQL允许用户创建一个最多由16列组成的复合索引。

  • 查询优化器使用组合索引进行查询,这将测试索引中的所有列。

  • 它还可以用于将测试前几列,前两列等等的查询。

  • 如果在索引定义中以正确的顺序指定了列,则可以使用单个复合索引,这将加快对同一表的某些类型的查询的速度。

让我们看看在创建表的过程中如何创建复合索引。可以使用以下语句完成-

询问

CREATE TABLE table_name (
   c1 data_type PRIMARY KEY,
   c2 data_type,
   c3 data_type,
   c4 data_type,
   INDEX index_name (c2,c3,c4)
);

在上面的语句中,复合索引由三列c2,c3和c4组成。

也可以使用“ CREATE INDEX”语句将组合索引添加到现有表中。让我们看看如何做到这一点-

询问

CREATE INDEX index_name
ON table_name(c2,c3,c4);

让我们看看如何使用Composite Index快速进行sloq查询-

  • 查询执行的速度取决于其持续时间。

  • 使用索引提示将加快查询速度。

  • 在选择索引时,可以使用MySQL优化器做出正确的决定。

  • 但这仅应在静态查询上完成。

  • 如果在“ WHERE”子句更改的地方添加查询,则查询的性能将变差,因为它不会让优化器完成其工作。

  • “ FORCE INDEX”语句的作用类似于“ USE INDEX(index_list)”,此外,表扫描被认为是一项昂贵的任务。

  • 仅当无法使用命名索引查找表中的行时才需要进行表扫描。