Django是否为ManyToMany字段做索引?

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

解决方案:

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

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

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

本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/5704.html

(0)
上一篇 2022年6月30日 下午7:09
下一篇 2022年6月30日 下午7:10

相关推荐

发表评论

登录后才能评论