面对大数据量的优化

面对大数据量的优化

 

0. mysql基础

http://youyu4.iteye.com/admin/blogs/2330441

http://youyu4.iteye.com/admin/blogs/2333291

 

1. 优化sql和索引

优化sql:

http://youyu4.iteye.com/admin/blogs/2331378

优化索引:

http://youyu4.iteye.com/admin/blogs/2331664

http://youyu4.iteye.com/admin/blogs/2331902

 

 

2. 选择合适的存储引擎

http://youyu4.iteye.com/admin/blogs/2332458

http://youyu4.iteye.com/admin/blogs/2333122

 

 

3. 加缓存,memcached、redis

 

4. 主从数据库,读写分离

 

 

5. 表分区,用MySQL自带的表分区,但是sql语句是需要针对分区表做优化的,sql条件中要带上分区条件的列,从而使查询定位到少量的分区上,否则就会扫描全部分区。

 

分区表的坑

 

 

 

6. 垂直拆分,将一个大系统拆分成多个小系统,怎么拆根据模块的耦合度而定,形成分布式系统。

 

适用场景:主要要看应用类型是否合适这种拆分方式,如系统可以分为,订单系统,商品管理系统,用户管理系统业务系统比较明的,垂直拆分能很好的起到分散数据库压力的作用。

 

垂直拆分可以将系统拆分,但不一定能解决压力,如果订单系统有2000W条数据,压力还是很大的,所以才需要水平拆分。

 

 

 

 7. 水平拆分,针对数据量大的表,拆分成多个小表,也可以将表分别放到不同的server上

 

参考:

http://blog.csdn.net/iloveyin/article/details/39996831

http://www.zhihu.com/question/19719997

 

 

猜你喜欢

转载自youyu4.iteye.com/blog/2331147