性能优化-单表数据过大
来源:互联网 发布:link域名的好处 编辑:程序博客网 时间:2024/05/20 11:51
方案
优势
不足
性能分析
接入spark
1. 该方案操作简单,只要将数据导入到hive表,然后通过spark jdbc的方式连接即可
2. 可扩展性好,可存储上T的数据
1. 对资源的依赖相对较重,目前大数据这边有10台服务器,1台master,9台slave,对于当前的调度任务来说,资源略显紧张,数据分析师和大数据这表均存在使用,而接入spark大概占据百分之二十的集群资源,导致分析师,调度任务无法再规定时间完成,若需要强行接入spark需要申请新的机器
2.spark优化较难
1. 经过测试查询两亿数据量,查询速度在10s左右,由于数据对时间有分区,业务查询除了比较极端的需求之外,不会全表扫描
2. 查询最近一段时间的数据,查询时间维持在1s以下
3. 经过调试查询速度可维持到100ms左右
数据库分库分表
1. 将大表分割为多个小表,大幅度查询的行数,从而提高查询效率,
2. 相比于分区,对于单个小表可建立索引,进一步提高查询速度
1. 数据量若大幅增长,分表表数不够,需要重新分表,移数据略显麻烦
2. 将数据导入多个表中,对于查询该表所有数据的统计不大好统
3. 数据表建的太多,看起来凌乱,而且导入历史数据略显麻烦
4. 增加列不大方便
浪费存储空间
1. 6千万数据分给为16个表,每个表数据量大概在40w数据左右,查询时间可达200ms以内
数据库分区
1. 和数据库分库分表的思想接近,属于物理存储层面的分库分表,数据量过大(索引查过cpu内存比如4G)时,删除索引查询速度可显著提高
2. 数量若增大,查询速度减慢时,可直接通过语句增加分区个数,提高查询速度
1. 单表数据量过大,对于分区建立索引会降低查询速度
2. 数据库迁移数据困难
3. 多表连接查询效率明显降低
4. 数据插入较慢,不适用于插入频繁操作
5. 浪费存储空间
6.最新版mysql数据库分区有限制8192,
1. 单个分区数据量大概在40w,查询速度可在200ms左右
2. 若分区数据量小,查询速度可更快
接入hbase 接口
1. 列的可以动态增加,并且列为空就不存储数据,节省存储空间.
2. Hbase自动切分数据,使得数据存储自动具有水平scalability.
3. Hbase可以提供高并发读写操作的支持
1. 不支持条件查询,只能通过row key来查询
查询速度可在100ms左右
1. 首先刚开始,人不多,压力也不大,搞一台数据库服务器就搞定了,此时所有的东东都塞进一个Server里,包括web server,app server,db server,但是随着人越来越多,
系统压力越来越多,这个时候可能你把web server,app server和db server分离了,好歹这样可以应付一阵子,
2.但是随着用户量的不断增加,你会发现,数据库这哥们不行了,速度老慢了,有时候还会宕掉,所以这个时候,你得给数据库这哥们找几个伴,这个时候Master-Salve就出现了,
这个时候有一个Master Server专门负责接收写操作,另外的几个Salve Server专门进行读取,这样Master这哥们终于不抱怨了,总算读写分离了,
压力总算轻点了,这个时候其实主要是对读取操作进行了水平扩张,通过增加多个Salve来克服查询时CPU瓶颈。一般这样下来,你的系统可以应付一定的压力,
3.但是随着用户数量的增多,压力的不断增加,会发现Master server这哥们的写压力还是变的太大,没办法,这个时候怎么办呢?你就得切分啊,俗话说“只有切分了,才会有伸缩性嘛”,
所以啊,这个时候只能分库了,这也是我们常说的数据库“垂直切分”,比如将一些不关联的数据存放到不同的库中,分开部署,这样终于可以带走一部分的读取和写入压力了,Master又可以轻松一点了,
但是随着数据的不断增多,你的数据库表中的数据又变的非常的大,这样查询效率非常低,这个时候就需要进行“水平分区”了,比如通过将User表中的数据按照10W来划分,这样每张表不会超过10W了。
4.搞一些大数据相关的接口,hbase,es等。
- 性能优化-单表数据过大
- MySQL单表百万数据记录分页性能优化
- mysql 单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL 单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- Mysql单表百万数据记录分页性能优化
- MySQL 单表百万数据记录分页性能优化
- MySQL 单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- MySQL单表百万数据记录分页性能优化
- Sql Server查询10-20条的数据
- 第八届蓝桥杯国赛心得
- 三分套三分(bzoj4885)
- Java内部类
- 配置oschina的ssh
- 性能优化-单表数据过大
- 设计模式—外观模式(八)
- GCD swift dispatch_set_target_queue 小例
- Windows下用PIP安装scipy出现 no lapack/blas resources found
- 初始jQuery
- android中inputType属性在EditText
- const与指针及初始化
- zynq7000平台AXI_lite与Native FIFO接口设计
- linux防火墙之iptables和NAT