美文网首页
器-说明:rails中数据库效能提升—索引的添加与删除

器-说明:rails中数据库效能提升—索引的添加与删除

作者: 稻草人_b788 | 来源:发表于2019-08-15 11:17 被阅读0次

一、索引对数据库性能的影响

1.索引的优缺点
优点:索引可以改善数据库检索(查询)的性能
缺点:创建索引会额外占用数据库的空间,使用索引会损害数据插入、删除和更新的性能。

二、索引的使用场景

如果收集的数据量虽然比较大,但实际检索频率不高,其实没有必要创建和使用索引。
如果数据量不大,也没有必要创建索引。

三、索引的添加和删除

在rails中可以在迁移文件中使用add_index和remove_index分别来添加和删除索引,运行迁移来更新数据库模式(schema)。
此外,在迁移之外我们也可以处理模式(schema),因此我们可以构建方法来根据需要进行索引的创建和删除。
例如在模型中定义如下方法:

def run_with_index(*columns)
    connection.add_index(:orders, *columns) #连接数据库,在orders表中的指定字段上添加索引
    begin
        yield
    ensure
        connection.remove_index(:orders, *columns) #连接数据库,删除在orders表中的指定字段上的索引
    end
end

然后在下面的模型统计数据的get_city_statistics方法中调用上述方法


def get_city_statistics
    run_with_index(:city) do #在orders表的city字段上操作索引
    #…… 统计计算的代码
    end
end

四、参考资料

1.《Rails5敏捷开发》第22章第6节–在迁移外部处理模式
2.《MySQL必知必会》第30章–改善性能

相关文章

网友评论

      本文标题:器-说明:rails中数据库效能提升—索引的添加与删除

      本文链接:https://www.haomeiwen.com/subject/oegajctx.html