10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

8.5.6优化InnoDB查询

调优以下查询InnoDB表,在每个表上创建一组适当的索引。看到8.3.1节,“MySQL如何使用索引”获取详细信息。遵循以下指导方针InnoDB索引数量:

  • 因为每个InnoDB表有一个主键(无论请求与否),为每个表指定一组主键列,这些列用于最重要和时间紧迫的查询。

  • 不要在主键中指定太多或太长的列,因为这些列值会在每个辅助索引中重复。当索引包含不必要的数据时,读取该数据的I/O和缓存该数据的内存会降低服务器的性能和可伸缩性。

  • 不单独创建二级索引对于每个列,因为每个查询只能使用一个索引。很少测试的列或只有几个不同值的列上的索引可能对任何查询都没有帮助。如果对同一个表有许多查询,测试不同的列组合,则尝试创建少量的连接索引而不是大量的单列索引。如果索引包含结果集所需的所有列(称为覆盖索引),查询可能完全可以避免读取表数据。

  • 如果索引列不能包含任何值,将其声明为非空当您创建表时。当优化器知道每个列是否包含索引时,它可以更好地确定对查询使用哪个索引最有效值。

  • 您可以优化单个查询事务InnoDB表格中使用的技术第8.5.3节,“优化InnoDB只读事务”