大数据处理
1、数据库
垂直拆分:根据业务把表放到不同的数据库,解决表之间的IO竞争
水平拆分:根据某种规则把单表数据分成多张表存储,解决单表数据量大的问题
索引:根据业务场景创建合理的索引,如果数据量很小建议使用索引(300条以内)
索引使用场景:
动作描述 |
聚集索引 |
非聚集索引 |
主键列 |
是 |
是 |
外键列 |
是 |
是 |
列经常被分组排序 |
是 |
是 |
返回某范围内的数据 |
是 |
否 |
一个或极少不同值 |
否 |
否 |
小数目的不同值 |
是 |
否 |
大数目的不同值 |
否 |
是 |
频繁更新的列 |
否 |
是 |
频繁修改索引列 |
否 |
是 |
分离活跃数据:把常用的数据和不常用的数据分离,例如活跃用户和不活跃用户
读写分离:写用主库,读用从库
其它:表结构优化、SQL语句优化
2、缓存
读数据时先从缓存中取,命中不到再读库
3、集群
使用hadoop做集群,可以同时处理相同的数据