排序应该在数据库中还是应用程序中?

看了一篇文章,谈到排序的问题,在平时的项目中,排序非常常见,经常需要用到,排序可以在不同的地方处理,比如程序内部,也可以是数据库中,现简单写下:

在MySQL数据库中排序的条件及优势:

条件首先得是,你的数据源是数据库形式的

1.MySQL可以创建索引,排序速度快

2.数据量较大,但是排序结果仅需要其中某个小子集,比如top n,这样数据库会更快

3.复杂排序条件,比如按照几个字段进行排序,数据库就非常有优势了


在很多互联网项目中,并不是都是MySQL等数据库作为数据源,其使用场景,多是基于用于id的单聚合查询,这种场景使用NoSQL系统的较多,比如redis,memcached等。

这种场景就需要在应用程序中做排序,也一并总结下程序内部排序的条件和优势

1.非基于数据库的存储方式,多数key-value的存储并不支持内部排序

2.降低DB的负载,在DB负担重时,程序内部排序,能够提升可扩展性

3.不存在锁表的问题

4.对于常用的排序结果,程序内部对结果增加临时缓存,也是提升性能的有利措施

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值