Python 有没有办法自动生成需要索引的列列表?

Python 有没有办法自动生成需要索引的列列表?,python,mysql,database,django,django-models,Python,Mysql,Database,Django,Django Models,奥姆的美丽使我昏昏欲睡。我有一个现有的Django应用程序缺少数据库索引。有没有办法自动生成需要索引的列列表 我在想,也许有一些中间件可以记录WHERE子句中涉及哪些列?但是MySQL中有什么内置的东西可能会有帮助吗?是的,有 如果您查看,有一个选项——不使用索引的日志查询否 在所有“慢”查询中随意添加索引也会降低插入、更新和删除的速度 索引是快速查询和快速更改之间的平衡。没有一般的或“正确”的答案。当然,没有任何东西可以自动实现这一点 在添加和更改索引时,您必须衡量整个应用程序的改进情况。太糟

奥姆的美丽使我昏昏欲睡。我有一个现有的Django应用程序缺少数据库索引。有没有办法自动生成需要索引的列列表

我在想,也许有一些中间件可以记录WHERE子句中涉及哪些列?但是MySQL中有什么内置的东西可能会有帮助吗?

是的,有

如果您查看,有一个选项
——不使用索引的日志查询

在所有“慢”查询中随意添加索引也会降低插入、更新和删除的速度

索引是快速查询和快速更改之间的平衡。没有一般的或“正确”的答案。当然,没有任何东西可以自动实现这一点


在添加和更改索引时,您必须衡量整个应用程序的改进情况。

太糟糕了,没有关于更通用的解决方案的帖子,如上面提到的中间件。上面提到的中间件将只显示索引候选列,而慢速查询日志将显示实际建议(由于特定于MySQL的服务器优化,这可能有所不同)。在我的情况下,就像在许多web应用程序中一样,它的读写量很大-仅限于管理员,表大小相当小。在这种情况下,您是否同意在查找中使用的所有列中添加索引将是有益的?@andybak:Willy Nilly索引是一个糟糕的计划。有些索引看起来是一个好主意,但实际上是有益的。两条规则:(1)一次只改变一件事;(2)测量前后。永远不要把一堆改变和希望抛诸脑后。