-
单机Mysql的纯真年代
90年代,一个网站的pv(Page View),uv(Unique Visitor),及ip访问量并不大,单实例Mysql(Oracle)可以轻松应付。
那时流行MVC经典三层架构

存在问题:
1.数据总量过大时,一台机器放不下。
2.数据的索引(B+ Tree)一台机器内存放不下
3.数据访问量(读写混合),单实例不能承受
-
Memcached(缓存) + Mysql + 垂直拆分
后来,随着网站访问量上升,Mysql架构网站在数据库上出现了性能问题。人们开始使用缓存技术缓解数据库压力,优化数据库结构和索引。比较典型的有通过文件缓存缓解数据库压力。并且垂直拆分Mysql实例

-
Mysql主从复制,读写分离
随着数据库写入压力,读写混合在同一个库中让数据库不堪重负,这时,大部分网站开始使用主从复制,读写分离模式提高了数据库性能(主库写入,从库读出)。Mysql的master-slave模式开始流行起来。

-
分表分库+水平拆分+Mysql集群
在此基础上,Mysql的主库写入的压力开始出现瓶颈,*由于Mysql引擎MyISAM使用表锁,在高并发下会出现严重的死锁问题,许多应用的Mysql引擎更换为行锁的InnoDB。*同时,Msql也推出了表分区及Mysql Cluster集群。这在高可用上带来了保证。

-
Mysql的扩展性瓶颈
对于大文本字段,导致数据库表非常大。Mysql的扩展性不好(需要有更复杂的技术实现),大数据下IO压力大,表结构改变困难。
-
今天的架构

客户端--->企业防火墙-->负载均衡(主)服务器(例:Apache,Nginx)--->应用服务器(例:Tomcat,Jetty)集群-->Mysql(Oracle)集群-->hoodtop服务器...
-
web2.0+ 互联网背景下,Nosql的产生背景
网络爬虫兴起与互联网浪潮下的变革。
评论