我正在读一本关于Django编码风格的书,他们讨论的一件事是db_index=True
。自从我开始使用Django以来,我就从未使用过此功能,因为我不确定它的作用。
所以我的问题是,何时考虑添加索引?
Answers:
这不是真的特定于Django;与数据库有关。当您想加快对该列的搜索时,可以在该列上添加索引。
通常,数据库仅索引主键。这意味着对使用主键的查找进行了优化。
如果您在辅助列上进行大量查找,请考虑向该列添加索引以加快处理速度。
请记住,与大多数规模问题一样,这些问题仅在统计上有大量行(10,000不大)的情况下适用。
此外,每次执行插入操作时,都需要更新索引。因此,请注意添加索引的列。
与往常一样,您只能优化可衡量的内容-因此,请使用该EXPLAIN
语句和数据库日志(尤其是所有慢查询日志)来找出索引在哪里有用。