MySQL 8.0发布说明
MySQL 8.0源码文档10bet官方网站
调优以下查询InnoDB
表,在每个表上创建一组适当的索引。看到8.3.1节,“MySQL如何使用索引”获取详细信息。遵循以下指导方针InnoDB
索引数量:
因为每个
InnoDB
表有一个主键(无论请求与否),为每个表指定一组主键列,这些列用于最重要和时间紧迫的查询。不要在主键中指定太多或太长的列,因为这些列值会在每个辅助索引中重复。当索引包含不必要的数据时,读取该数据的I/O和缓存该数据的内存会降低服务器的性能和可伸缩性。
不单独创建二级索引对于每个列,因为每个查询只能使用一个索引。很少测试的列或只有几个不同值的列上的索引可能对任何查询都没有帮助。如果对同一个表有许多查询,测试不同的列组合,则尝试创建少量的连接索引而不是大量的单列索引。如果索引包含结果集所需的所有列(称为覆盖索引),查询可能完全可以避免读取表数据。
如果索引列不能包含任何
零
值,将其声明为非空
当您创建表时。当优化器知道每个列是否包含索引时,它可以更好地确定对查询使用哪个索引最有效零
值。您可以优化单个查询事务
InnoDB
表格中使用的技术第8.5.3节,“优化InnoDB只读事务”.