索引提示

使用mysql时,indexHints 可用于选择性地传递索引提示. 提示类型必须是来自 Sequelize.IndexHints 的值,值应该引用现有索引.

索引提示覆盖 mysql 查询优化器的默认行为.

  1. Project.findAll({
  2. indexHints: [
  3. { type: IndexHints.USE, values: ['index_project_on_name'] }
  4. ],
  5. where: {
  6. id: {
  7. [Op.gt]: 623
  8. },
  9. name: {
  10. [Op.like]: 'Foo %'
  11. }
  12. }
  13. })

将生成一个如下所示的 mysql 查询:

  1. SELECT * FROM Project USE INDEX (index_project_on_name) WHERE name LIKE 'FOO %' AND id > 623;

Sequelize.IndexHints 包含 USE, FORCE, 和 IGNORE.

有关原始API提案,请参阅Issue #9421.