为什么用NoSQL?
-
单机MySQL的美好年代,在90年代,一个网站的索引量一般都不大,用单个数据库完全可以轻松应付,在上述背景下,数据存储的瓶颈是什么?
- 数据量的大小一个机器放不下时
- 数据的索引 一个机器的内存放不下时
- 访问量(读写混合)一个实例不能承受
-
Memcached(缓存)+MYSQL+垂直拆分
后来,随着访问量的上升,几乎大部分使用MYSQL的架构的网站在数据库上都开始出现性能问题,程序员们开始大量的使用缓存技术来缓解数据库的压力,优化数据库的结构和索引,开始比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大的时候,多台web机器通过文件缓存不能共享,大量的小文件缓存也带来了比较高的IO压力,在这个时候,Memcached就自然应运而生了,把频繁查询的固定数据放在缓存里,减轻数据库的压力,也可以分成多个数据库,比如买家一个库,卖家一个库
-
MYSQL主从复制读写分离
由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力,读取集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性,往主库写,从从库读
-
分表分库+水平