当前位置: 首页 > 工具软件 > Django Silk > 使用案例 >

django models索引_Django模型(索引)

锺离伟彦
2023-12-01

一丶说明

索引类(index classes)可以轻松的创建数据库索引,使用meta.indexes来添加索引设置.

例如:

from django.db import models

class Customer(models.Model):

first_name = models.CharField(max_length=100)

last_name = models.CharField(max_length=100)

class Meta:

indexes = [

models.Index(fields=['last_name', 'first_name']),

models.Index(fields=['first_name'], name='first_name_idx'),

]

indexes默认在django.db.models.indexes中导入,但方便起见,可以使用django.db.models导入

标准规范使用:

from django.db import models

models..

Index options(索引设置)

class Index(fields=[], name=None, db_tablespace=None(2.0加入))

作用:

在数据库中创建一个index(索引)B-Tree类型。

参数说明:

1.fields

Index.fields

列表内写入需要索引的字段

默认,列表按照升序排列。要定义一个列的降序的索引,在字段名之前添加连字符即可。

例如:

Index(fields=['headline', '-pub_date'])

SQL语句为(headline, pub_date DESC).

注意:MySQL不支持索引排序。在这种情况下,一个下降的索引被创建为一个正常的索引

2.name

Index.name

索引名,如果没有提供Django将自动提供一个名称,

为了与不同的数据库兼容应注意以下两点:

1.索引名长度不超过30个字符串

2.不能以数字(0-9)和下划线(_)开头

3.db_tablespace(2.0新加入)(表空间)

Index.db_tablespace

索引表空间名称. 对于单子段索引, 如果表空间名称没有给出, 索引将在字段内创建

如果Field.db_tablespace没有指定(或者索引使用多字段), 索引是在model的类元内的db表空间选项中指定的表空间中创建的,如果没有创建表空间, 则索引在与表空间相同的位置创建

 类似资料: