99%的网站瓶颈都在后端 最主要的瓶颈在于:数据库和存储
存储前面用缓存来减轻压力
数据库前面用memcached缓存来减轻压力
数据库就是存放数据的仓库
比较流行的数据库模型有三种:层次式数据库、网络式数据库和关系型数据库
最常用的有关系型数据库和非关系型数据库
关系型数据库是把数据结构归结为简单的二元关系(二维表格形式),对数据的操作都建立在一个或多个关系表格上。
1、二维表格形式
2、典型代表:MySQL oracle
3、用sql语句对数据进行操作与管理
非关系型数据库诞生原因:动态请求越来越多,对数据库要求越来越高,传统的数据库无法满足要求,存取速度慢。
非关系型数据库有哪些种类呢?
(1) 键值存储数据库(key-value)
典型产品:memcached redis memcacheDB Berkeley DB
(2) 列存储数据库(column-oriented)
典型产品:cassandra,HBase
(3) 面向文档数据库(Document-Oriented)
典型产品:MongoDB CouchDB
(4) 图形数据库(Graph)
典型产品:Neo4J InfoGrid
关系型数据库现在的市场占有率以ORACLE和MYSQL为主:
oracle关系数据库产品的市场占有率数一数二
适用范围:传统大企业、大公司、政府、金融、证券等
版本升级:8i 9i 10g 11g 12c
MySQL数据库是中小型关系型数据库管理系统
有点:体积小,速度快,拥有成本低、开放源代码
适用范围:互联网领域、大中小型网站、游戏公司、电商平台
MariaDB数据库:mysql数据库的一个分支,担心mysql被收购后存在闭源风险,由此诞生这个数据库,相对于mysql而言,只是替换了存储引擎
SQL server数据库:微软平台的数据库 适用于:部分企业电商(央视购物),使用windows服务器平台的企业
ACCESS数据库: 入门级小型桌面数据库,性能安全性都很一般,适用于个人管理或小型网站使用。
应用领域:中小型应用系统,小型程序系统asp+access系统,留言板,校友录等。
memcached是一个开源的、高性能的、具有分布式内存对象的缓存系统 http://memcached.org
作用:减轻数据库负载,加速动态的web应用。
优点:它属于纯内存的数据库,所以快。
缺点:重启数据库所有数据就会丢失了。
新浪网结合memcached增加Berkeley db的持久化存储机制和异步主辅复制机制,使memcached具备了事务回复能力、持久化数据存储能力和分布式复制能力,所以Memcachedb非常适合需要超高性能读写速度、持久化保存的应用场景,但最近几年逐渐被redis等产品替代。
redis的数据都是缓存在内存中。区别是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave同步。
redis特点:
1 支持内存缓存,此功能相当于memcached
2 支持持久化,这个功能相当于memcachedb,ttserver.
3 数据类型更丰富,比其他key-value库功能更强
4 支持集群,分布式
5 支持队列等特殊功能
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富,最像关系数据库的,
最大的特点:支持的查询语言非常强大。
mysql是一种关系型数据库管理系统,是将数据保存在不同的表中,再将这些表放入不同的数据库中,而不是将所有数据统一存放在一个大仓库中,这样的设计增加了mysql的读取速度,灵活性可管理性也得到了很大提高。访问及管理mysql数据库的最常用标准化语言为sql结构化查询语言。
MariaDB是很多业界人士担忧数据库的老大有可能将mysql闭源,为了规避闭源风险,由此而产生了MariaDB数据库
官方地址:https://mariadb.org.
绝大多数使用linux操作系统的大中小型互联网网站都在使用mysql作为其后端的数据库存储,从大型的BAT网站,到电商平台,分类门户网站等无一例外都使用mysql数据库
优势和特点:
1、性能卓越,服务稳定,很少出现异常宕机
2、开放源代码且无版权制约,自主性及使用成本低
3、历史悠久,社区及用户非常活跃,遇到问题,可以寻求帮助。
4、软件体积小,安装使用简单,易于维护,安装及维护成本低。
5、品牌口碑效应,使得企业无需考虑就直接用之,LAMP,LEMP流行架构
6、支持多种操作系统,提供多种API接口,支持多种开发语言,特别对流行的PHP语言有很好的支持。