91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django model中如何設置聯合約束和聯合索引

發布時間:2021-06-22 13:01:45 來源:億速云 閱讀:450 作者:小新 欄目:開發技術

小編給大家分享一下Django model中如何設置聯合約束和聯合索引,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在Django model中對一張表的幾個字段進行聯合約束和聯合索引,例如在購物車表中,登錄的用戶和商品兩個字段在一起表示唯一記錄。

舉個栗子:

Django model中購物車表

class Cart(models.Model):
  user = models.ForeignKey(
    MyUser,
    verbose_name="用戶"
  )
  goods = models.ForeignKey(
    Goods,
    verbose_name="商品"
  )
  num = models.IntegerField(
    verbose_name="商品數量"
  )
  is_select = models.BooleanField(
    default=True,
    verbose_name="選中狀態"
  )
 
  class Meta:
    # 聯合約束  其中goods和user不能重復
    unique_together = ["goods", "user"]
    # 聯合索引
    index_together = ["user", "goods"]

unique_together = ["goods", "user"] 表示聯合約束,其中"goods"和"user"表示不能重復,不能一樣。

index_together = ["user", "goods"] 表示聯合索引,其中"goods"和"user"聯合同步查詢,提高效率。

聯合索引的優勢

示例SQL:select * from person where a=100 and b=100 and c=1000;

假設你的數據有一千萬條 每次條件過濾 省10%的數據

1 如果三個單索引 先拿a的索引找 剩下100萬數據 然后拿b條件找 剩十萬 再c條件找 最后得到一萬數據

2 如果是聯合索引 他 一千萬數據*10% * 10% * 10% 直接得到一萬條數據

建立聯合索引的同時 還會給他們之間的組合建立索引

以上是“Django model中如何設置聯合約束和聯合索引”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东乌珠穆沁旗| 巩义市| 灵川县| 建阳市| 泸水县| 凤城市| 香河县| 奎屯市| 罗平县| 孙吴县| 福海县| 绍兴市| 永登县| 永寿县| 海宁市| 新丰县| 娱乐| 双鸭山市| 北海市| 崇左市| 工布江达县| 淮北市| 奉新县| 英山县| 湘潭县| 崇州市| 永川市| 镇远县| 贵州省| 余干县| 北安市| 台南县| 平昌县| 昌图县| 肃北| 林西县| 敦煌市| 稻城县| 望江县| 清徐县| 云安县|