亿级数据mysql优化

本文介绍了在面对亿级数据时,如何通过分表分库、优化查询和多线程查询来提升数据库性能。使用mycat作为数据库中间件实现分库分表,通过加索引、切分查询条件以及采用CountDownLatch同步和线程安全队列优化多线程查询,有效解决了大数据量查询的效率问题。
摘要由CSDN通过智能技术生成

亿级数据优化

情况简介

用户分析系统以用户的心跳数据为依据,统计查询用户的各种情况。心跳数据很多,经过去重,去无效,数据量还是在2亿/月的水平。普通的查询在这个量级的数据库上根本查不出来,为此,分表分库、优化查询、多线程查询就很有必要了。

分表分库

对于大数据查询,我的第一反应就是分表分库,我之前对分表分库已经听的很多了,但自己之前并没有真的做过分表分库。我经常说分表分库,经常听分表分库,对分表分库的技术充满了兴趣,所以这次,我的意见就是上分表分库。分库分表就是按一定规则把一张大表的数据切成多个小表,查询时分组查询多个小表再把结果集集合起来。

分表其实只是对数据表的数据量的减少。比如一个1亿的表,经过分表后,会分成4个千万级别的表,对于查询sql,会在千万级别的表中执行,并把结果合并起来。在亿级查询的时间比千万级会提高很多,这个就是分表的作用。但是分表仅仅是数据量的减少,并没有去解决查询慢的问题,如果一个查询慢,及时使用分表,它还是很慢。

我们最终用mycat这个数据库中间件来进行分库分表,mycat启动后,会开启一个模拟mysql的服务端,对于插入的sql,它可以按规则自主放入对应的表中,对应查询的sql,它会自动的去各个数据库查询,并自动整合结果。

优化查询

经过对数据库的了解后,我发现,数据库查询的最该优化的地方还是数据库优化。首先就是

加索引

索引要加给需要查询的列,对于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值