• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 优化InnoDB查询

    要调整InnoDB表查询,请在每个表上创建一组适当的索引。有关详细信息,请参见“ MySQL如何使用索引”。请遵循以下InnoDB索引准则:

    • 因为每个InnoDB表都有一个主键(无论您是否请求一个主键),所以请为每个表指定一组主键列,这些列用于最重要且时间紧迫的查询中。
    • 不要在主键中指定太多或太长的列,因为这些列值在每个辅助索引中都是重复的。当索引包含不必要的数据时,用于读取此数据的I / O和用于对其进行缓存的内存将降低服务器的性能和可伸缩性。
    • 不要为每一列创建单独的二级索引,因为每个查询只能使用一个索引。很少测试的列或只有几个不同值的列上的索引可能对任何查询都没有帮助。如果您对同一张表有很多查询,测试不同的列组合,请尝试创建少量的串联索引,而不是大量的单列索引。如果索引包含结果集所需的所有列(称为覆盖索引),则查询可能完全避免读取表数据。
    • 如果索引列不能包含任何NULL值,请NOT NULL在创建表时将其声明为。当优化器知道每一列是否包含NULL值时,它可以更好地确定哪个索引对查询最有效。
    • 您可以InnoDB使用“优化InnoDB只读事务”中的技术优化表的单查询事务。