**单机数据库时代:**一台电脑安装一个数据库实例 sqlserver等,一个应用对应一个数据库服务器
Memcached缓存、水平切分时代: 应用和数据库服务器中加一个缓存 解决经常访问的数据的访问效率问题,但是数据量较大;水平切分解决数据量大的问题:将一个数据库服务器拆分为多个,一个应用按照不同业务存储在不同服务器
**读写分离时代:**但是若是订单表,本身就特别大,并发能力特别弱,所以可以拆分,几个表负责读,几个负责写,几个负责删除,谁闲着找谁,用同步机制保证ACID,负责写的为主负责读的为从,主同步到从
分表分库时代(集群): 某一天或某一周的数据存在一个表中,同类型的数据不存储在同一个表中,因为数据量太大了
前面的都是关系型数据库时代,以表为单位存储。
传统的关系型数据库, 在数据操作的”三高”需求以及对应的 Web 2.0 网站需求面前, 会有”力不从心”的感觉。高并发, 高性能, 高可用, 简称三高
- High Performance: 对数据库的高并发读写的要求(双11的淘宝)直接操作缓存能够承受的请求是远远大于直接访问数据库的,所以我们可以考虑把数据库中的部分数据转移到缓存中去,这样用户的一部分请求会直接到缓存这里而不用经过数据库。
- High Storage: 对海量数据的高效率存储和访问的需求(微信每天有几亿的用户,产生的数据特别大)
- High Scalability &&