10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册 本手册节选

8.5.6优化InnoDB查询

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

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

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

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

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

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