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