SQLite 是一个类似Access 的轻量级数据库系统,但是更小、更快、容量更大,并发更高。为什么说SQLite 最适合中小站点网站制作呢?并不是说其他数据库不好, Oracle、MySQL、SQLServer 也都是非常优秀的DBS,只不过他们设计目标不同,特性不同,所以只有更适用某个应用场景,没有绝对的好坏之分。
SQLite 数据库的优势
真正开源的小型嵌入式数据库,支持事务、触发器器。
性能至少优于MySql 4.1.0 。
目前已被几乎所有的高级程序开发语言支持。
由于可以自定义数据库函数,尤其在php 的扩展中可支持全部php 函数,其性能可以说是无上限的。
有很多用PHP 开发的管理工具,与PhpMyAdmin 的界面很相似,比如常见的:SQLiteManager。
明月作为一个运维人员,搭建、运营和管理过很多中小型站点,也总结出了一个大概的“中小型站点特点”出来:
中小型站点的特点
数据量不超过10 万
日页面访问量不超过10 万
一部分网站全部生成静态页面,一部分网站实时查询数据库动态访问。
站长不懂技术,不懂得复杂的数据库维护,只会用FTP 管理网站。
个人站点基本上是一个人管理,一般情况下只有一个人在访问后台,没有并发。
对数据库来说是读多写少,只有在站长访问后台的时候才会写入。
多运行于虚拟主机又或者轻量应用云服务器,大部分PHP 主机均同时支持MySQL,小部分PHP 主机需要单独购买MySQL,而轻量应用云服务器更是有CPU 基准限制等等。
多数中小站点的HTTP 服务与MySQL 部署在同一服务器上。
综上所述可见中小型站点的性能需求是很小的,基于这个最大的特点来看,使用SQLite 数据库显得更加的契合,对于后期管理维护也是超级的简单和高效。
SQLite 在中小型站点下的突出表现
与MySQL 相比,它更彻底的免费,并且没有任何使用上的限制。
非常小巧,PHP5 以上版本中无需任何配置即可支持SQLite。
无需单独购买数据库服务,无服务器进程,配置成本为零。
整个数据库存储在一个单个的文件中,数据导入导出备份恢复都是复制文件,维护难度为零。
读速度快,在数据量不是很大的情况下速度较快,更重要的是:省掉了一次数据库远程链接没有复杂的权限验证,打开就能操作。
选择SQLite 后成本的降低几乎是必然的,技术上的支持和兼容更是毫无压力,后期维护备份几乎是无脑操作即可,整体的性能表现也完美的契合了硬件配置。当然SQLite 的缺点也是不可避免的,但是在中小型站点上能很好的规避:
并发低动态访问时当访问量不超过10 万PV 的时候,SQLite 超过Access 的并发能力已经绰绰有余;生成静态页后更无需考虑数据库的并发问题。
在大数据量的情况下表现较差但是中小站点一般情况下数据量不超过10 万,而SQlite 在100 万数据量之下表现还不错,因为省掉了对数据库服务器的远程连接甚至会更快。
写入较慢默认配置下的SQlite 的写入速度比MySQL 慢了很多,但是CMS 应用场景的写入操作较少。在插入新文章的时候基本感受不到慢。集中的写数据库操作只有在安装的时候会出现,不过只出现一次,可以忽略。
为已有的表加索引较慢但是在中小站点CMS 中不会有这样的需求,可以忽略。
无法将MySQL 部署到与前端机不同的服务器上,但是中小站点也没有分开部署的需求。
对于中小型站点来说MySQL 这类数据库确实非常先进,但说实话都是“大材小用”、“杀鸡焉用牛刀”了,甚至可以毫不夸张的说大部分中小型站点需求仅仅用到了MySQL 这类数据库10%的功能而已,还得为了适配MySQL 在硬件上做出取舍(比如:内存低于2G 是无法使用MySQL 高版本的)徒增成本而已,与其这样为啥不简单的选择SQLite 这类轻量的数据库来使用呢?