MySQL Django: 创建索引:非唯一、多列
在MySQL中,索引是用来加速表的查询速度的一种数据结构。在Django中,可以使用ORM来创建索引。
阅读更多:MySQL 教程
创建非唯一索引
要创建一个非唯一索引,可以在模型类的Meta类中使用indexes选项。
class Orders(models.Model):
order_no = models.CharField(max_length=20)
user_id = models.IntegerField()
amount = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
indexes = [
models.Index(fields=['user_id']),
]
上面的indexes选项中,使用了models.Index来创建一个索引,fields参数指定了需要创建索引的列。这里,我们创建了一个针对user_id列的索引。
创建多列索引
同样,要创建一个针对多列的索引,可以在fields参数中指定多个列。
class Orders(models.Model):
order_no = models.CharField(max_length=20)
user_id = models.IntegerField()
product_id = models.IntegerField()
amount = models.DecimalField(max_digits=10, decimal_places=2)
created_at = models.DateTimeField(auto_now_add=True)
class Meta:
indexes = [
models.Index(fields=['user_id', 'product_id']),
]
上面的例子中,我们创建了一个同时包含user_id和product_id列的索引。
总结
使用非唯一、多列索引可以大大提高表的查询速度。在Django中,使用ORM创建索引非常方便,并且具有灵活性,可以根据需要创建各种类型的索引。
极客教程