1.PHP+MySql的存储缺点
在大部分的PHP的网站开发当中,我们往往采用的数据存储方式是php+mysql,因此就会产生如下图所示的请求方式:
以上的架构对一般对于访问量不大的网站没有任何问题,例如:个人博客网站,小公司的企业网站。然而当网站的数据量和访问量增大之后,即使您的MySql数据库做了非常完美的优化手段,这个架构的请求方式是不会有任何改变的。也就是说,该架构所有的读写操作都是实时发生的,就算你设定了读写分离其实也是把这一切的工作依然是实时的,全部由MySql数据库来承受。所以这种请求方式的架构是有瓶颈的,如果把这个架构当成一个人搬货物来对待,中间的搬运过程不能中断,这个负责搬运的人不能休息,那么无论这个人有多么优秀,力气有多大,他总有体力耗尽的时候。
因此可以得出一个这样的结论:优化的核心思想是减轻数据库的压力,减轻访问(连接)的次数。
- 大型网站的优化方向
- 增加服务器,设置读写分离(主从复制)。
- 增加cpu,高速的IO读写硬盘等硬件和网络带宽。
- 在MySql层面做各项优化,如:索引优化,分表等
- 使用反向代理和负载均衡技术(Nginx,H3C,F5)
- 聘请可靠的开发技术团队和优秀的运维团队
6.使用NoSql作为缓存中间层
- NoSql的含义
NoSQL ,(Not Only SQL),泛指非关系型数据库, 它是由一次叫“反Sql运动”的社区讨论而诞生的体系。这个运动的发起最早源自于社区网站 LiveJournal的开发团队,它们的初衷是为了用于减少数据库连接数,减轻数据库的工作压力,但发展至今有着其他不同的应用领域,因此NoSQL处于一种所谓百家争鸣的,各执一词的时期。但我们作为NoSql的学习者和应用者,我们不需要关心和纠结这些NoSql的争论,也不需要参与到这些争论当中。
NoSql的共同特点和优势:
NoSQL 通常是以key-value形式存储的(如:Memcache)
不支持SQL语句,
没有表结构
配置简单
灵活、高效的操作与数据模型
低廉的学习成本
能很好地作为MySql的中间层
能很好地支持PHP
NoSql的共同的缺点:
没有统一的标准
没有正式的官方支持
各种产品还不算成熟
权威支持的产品价格很高(如:阿里云)
NoSql的产品分类:
ttServer
redis
mongodb
memcache
CAP
HBC
Aliyun MQ
KVCache(Memcache)