【发布时间】:2015-10-03 07:07:04
【问题描述】:
我正在使用 django orm 和 mysql。 由于某种原因,mysql 使用了错误的索引。 我想手动覆盖使用的索引。 我看到 django 团队出于跨平台原因决定阻止使用会强制索引的 with_hints 扩展。 有没有人有任何解决方案\建议我如何让mysql通过django使用正确的索引?
谢谢
【问题讨论】:
我正在使用 django orm 和 mysql。 由于某种原因,mysql 使用了错误的索引。 我想手动覆盖使用的索引。 我看到 django 团队出于跨平台原因决定阻止使用会强制索引的 with_hints 扩展。 有没有人有任何解决方案\建议我如何让mysql通过django使用正确的索引?
谢谢
【问题讨论】:
django-mysql 扩展支持索引提示。详情请见the docs。
【讨论】:
force_index
Django 支持原始 sql 查询以满足您的需求,请参阅文档文章 Performing raw SQL queries。
当模型查询 API 不够用时,您可以退回到编写原始 SQL。 Django 为您提供了两种执行原始 SQL 查询的方式:您可以使用 Manager.raw() 执行原始查询并返回模型实例,或者您可以完全避开模型层并直接执行自定义 SQL。
【讨论】: