PHP特级课视频教程_第二集 网站大数据存储 笔记心得

淘宝数据存储三阶段 mysql   oracle   mysql 主从集群


mysql主从


垂直分表


水平分表   :宁可多几个表,少点字段 ,几个几十个字段。水平分表用的多,重点是行,记录数。


分区技术: 把表从逻辑上分开,水平分区技术将一根表拆分成多个表,比较常用的方式是将表中的纪录按照某种Hash算法进行拆分,简单的差分方法是取模方式。
同样,这种分区方法也必须对前端的应用程序中的SQL进行修改方可使用。而且对于1个sql,他可能会修改2个表,那么你必须写成2个SQL语句从从而完成一个逻辑的事务,使得程序的判断逻辑越来越复杂,这样也会导致程序的维护代价高,也就失去了采用数据库的优势。因此,分区技术可以有力的避免如上的成为解决海量数据存储的有力方法。

http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html

nosql——

redis:

 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。




MongoDB 是一个基于分布式文件存储的数据库。由c++语言编写。旨在为WEB应用提供可扩展的高性能数据存储方案
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,因此可以存储比

较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,

几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。



网站加速技术:

a  Squid代理缓存技术
b  页面静态化缓存
c  Memcache
d  Sphinx搜索加速


你可能感兴趣的:(PHP特级课视频教程_第二集 网站大数据存储 笔记心得)