千万级表查询优化

最近想换工作了,面试经常被问道超大表查询优化方面的东西,在这里总结一下个人的一些心得,如果有幸被哪位技术大牛看到,不当之处请多多指教!


1:给需要高频查询的字段增加索引
2:优化查询sql执行效率
3:把现有表改为分区表
4:在应用层加缓存减少热点数据访问数据库的次数(如果是使用oracle的话,可以查看awr报告找到执行次数最多和执行效率最差 的一些sql,然后把这些操作用到的数据加载到缓存中)
5:使用分表/分库策略,把数据分散到不同的表/库中(如果业务流程都需要用到全表扫描则不太适合)
6:使用数据库读写分离(减轻服务器单节点的压力)


设计程序的时候如果预估数据会超过100W就应该考虑优化查询语句,增加索引等操作。

如果数据量会查过1000W就应该考虑 分区表+缓存的策略

如果分区表+缓存的策略也不行了那就考虑读写分离、分表、分库等方案

如果以上方案都用了还会有性能问题,那只能使用杀手锏nosql了,当前前提是这个大表不会涉及复杂的逻辑查询查询,最好只是简单的key-value查询(key-value高并发查询是mangodb、hbase等nosql产品的拿手好菜啊)


如果nosql也吃不消了,就只能阿弥陀佛自求多福了,我也没辙了。如果哪位大神有更好的方案 求指教微笑

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值