赞
踩
MySQL 也可以但不擅长
传统关系型数据库(如 MySQL )在大数据量下查询效率低下, 模糊匹配有可能导致全表扫描。
MySQL 全文索引只支持 CHAR , VARCHAR 或者 TEXT 字段类型,不支持分词器。
将磁盘里的东西尽量搬进内存,减少磁盘随机读取次数 (同时也利用磁盘顺序读特性),结合各种压缩算法,用及其苛刻的态度使用内存。精打细算每一块内存、磁盘空间、用诡谲的位运算加快处理速度。
好处:
1、增大系统容量。我们的业务量越来越大,而要能应对越来越大的业务量,一台机器的性能已经无法满足了,我们需要多台机器才能应对大规模的应用场景。所以,我们需要垂直或是水平拆分业务系统,让其变成一个分布式的架构。
2、加强系统可用。我们的业务越来越关键,需要提高整个系统架构的可用性,这就意味着架构中不能存在单点故障。这样,整个系统不会因为一台机器出故障而导致整体不可用。所以,需要通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性。
3、因为模块化,所以系统模块重用度更高
4、因为软件服务模块被拆分,开发和发布速度可以并行而变得更快
5、系统扩展性更高
6、团队协作流程也会得到改善
坏处:
1、架构设计变得复杂(尤其是其中的分布式事务)
2、部署单个服务会比较快,但是如果一次部署需要多个服务,部署会变得复杂
3、系统的吞吐量会变大,但是响应时间会变长
4、运维复杂度会因为服务变多而变得很复杂
5、架构复杂导致学习曲线变大
6、测试和查错的复杂度增大
7、技术可以很多样,这会带来维护和运维的复杂度
8、管理分布式系统中的服务和调度变得困难和复杂
资料来源:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。