Django是否为ManyToMany字段做索引?

问题描述 投票:0回答:1

我想问一下,Django是否为以下字段建立数据库索引?ManyToMany 字段...如果是的话,它是这样做的模型,我提供在 through 我只是想确保数据库在有大量数据的情况下能快速运行

python django python-3.x database django-models
1个回答
-1
投票

对于普通的m2m字段是这样做的--对于 "直通 "表不能确定,因为我在我当前的项目中没有任何表,也没有访问其他项目的权限,但它仍然应该是这样的,因为这个索引对于UNIQUE约束是必要的。

FWIW,你可以很容易地通过查看数据库中的表定义来检查它(在MySQL mariadb中用 show create table yourtablename).

这就是说,db索引只有在主要是不同的值时才有用,如果不是这样的话,实际上会降低性能(取决于你的db供应商等)--例如,如果你有一个字段有3或4个可能的值(即 "性别 "或类似的东西),索引它可能不会产生预期的结果。对于m2m表来说,这应该不是问题,因为表中的 (table1_id, table2_id) 对应该是唯一的,但问题是,你不应该相信仅仅添加索引就能自动提升你的性能--调优SQL数据库的性能本身就是一种交易,实际上很大程度上取决于你实际上是如何 使用 你的数据。

© www.soinside.com 2019 - 2024. All rights reserved.