Tag Archives: SQLite

SQLite数据库是中小站点CMS的最佳选择

作者:孙毓波 (AKCMS 作者)

SQLite 是一个类似Access的轻量级数据库系统,但是更小、更快、容量更大,并发更高。为什么说 SQLite 最适合做 CMS (内容管理系统)呢?并不是说其他数据库不好, Oracle、MySQL、SQLServer 也都是非常优秀的 DBS,只不过他们设计目标不同,特性不同,所以只有更适用某个应用场景,没有绝对的好坏之分。

我归纳的中小型站点的CMS的特点如下:

  • 1、数据量不超过10万
  • 2、日页面访问量不超过10万
  • 3、 一部分网站全部生成静态页面,一部分网站实时查询数据库动态访问
  • 4、 站长不懂技术,不懂得复杂的数据库维护,只会用 FTP 管理网站
  • 5 、个人站点基本上是一个人管理,一般情况下只有一个人在访问后台,没有并发
  • 6、 对数据库来说是读多写少,只有在站长访问后台的时候才会写入
  • 7、 多运行于虚拟主机,大部分PHP主机均同时支持MySQL,小部分PHP主机需要单独购买MySQL,PHP+MySQL的主机价格较PHP主机价格高。
    (以万网为例:最便宜的PHP空间780元,最便宜的PHP+MySQL的PHP空间1150元)
  • 8、 多数中小站点的HTTP服务与MySQL部署在同一服务器上

SQLite 的优点在中小网站CMS应用场景下表现突出:

  • 1、与MySQL相比,它更彻底的免费,并且没有任何使用上的限制
  • 2、非常小巧,PHP5以上版本中无需任何配置即可支持SQLite
  • 3、无需单独购买数据库服务,无服务器进程,配置成本为零
  • 4、整个数据库存储在一个单个的文件中,数据导入导出备份恢复都是复制文件,维护难度为零
  • 5、读速度快,在数据量不是很大的情况下速度较快,更重要的是:省掉了一次数据库远程链接没有复杂的权限验证,打开就能操作

SQLite的缺点在中小网站 CMS 应用场景下被规避:

  • 1、并发低 动态访问时当访问量不超过10万PV的时候,SQLite 超过 Access 的并发能力已经绰绰有余;生成静态页后更无需考虑数据库的并发问题
  • 2、在大数据量的情况下表现较差 但是中小站点一般情况下数据量不超过10万,而SQlite 在 100 万数据量之下表现还不错,因为省掉了对数据库服务器的远程连接甚至会更快
  • 3、写入较慢 默认配置下的 SQlite 的写入速度比MySQL慢了很多,但是 CMS 应用场景的写入操作较少。在插入新文章的时候基本感受不到慢。集中的写数据库操作只有在安装的时候会出现,不过只出现一次,可以忽略
  • 4、为已有的表加索引较慢 但是在中小站点CMS中不会有这样的需求,可以忽略
  • 5、无法将 MySQL 部署到与前端机不同的服务器上,但是中小站点也没有分开部署的需求

综上所述:在中小站点 CMS 的应用场景下 SQLite 能最大限度的降低建站成本,降低维护难度,又很好得规避了自身的缺点。所以我认为未来支持 SQLite 的 CMS 系统一定会大行其道。

EOF


Fenng 注:这是网友来稿,转载请注明本文作者。刊载此文不代表我赞同文中所有观点。其实,我觉得 Berkeley DB 或许也不错。另外,如果一个 CMS 日访问量小于 10 万,通过一些 Web 前端优化,后端的压力就会非常之小。

Trac 的安装搭建–针对 Dreamhost

昨天尝试在 Dreamhost 上搭建 Trac.经过一番折腾,终于能 “Run” 起来了.下面说一下安装过程的注意事项,供一些准备在 Dreamhost 搭建 Trac 的朋友参考.
虽然 Dreamhost 现在已经可以做到一键安装 Subversion, 但是还做不到一键安装 Trac . 不过还好,Dreamhost 的 Wiki 提供了一篇比较详尽的安装指导:Installing Trac without Debian packages on a shared host(以下简称’指导’)
安装过程会依次涉及到安装 Python 2.3.5(因为要使用Clearsilver,所以需要单独安装一份自己的 Python,虽然 Dreamhost 已经在系统中安装了 Python 的几个版本), ClearSilver(功能强大的 HTML 模板系统), SQLite(Trac 用到的数据库.Trac 支持 SQLite 与 PostgreSQL), pysqlite(Python 调用SQLite的接口), SWIG(Simplified Wrapper and Interface Generator ),(Subversion–我最后没安装而用系统预安装的版本),所以需要先决定这些软件的安装目录.我是把这些工具安装在当前用户的默认目录($HOME)下.如果你准备安装到默认目录下的特定目录,需要注意一下环境变量的设定.
安装过程比较繁琐, 如果不是特别肯定, 我都不安装相关软件的最新版本.我用的版本号会注明.
好了, 参考’指导’开始安装 Python ,注意当前操作的 Shell 用户要有足够的空间.接下来一系列的编译操作会占生成很多临时文件并占用很多磁盘空间.
安装 Python 完成后,Clearsilver 的安装需要做一点修改,以便于能够找到刚才安装的 Python 环境.对 clearsilver-0.9.14.tar.gz 解压缩之后,修改 scripts/document.py 的第一行为 #!/usr/bin/env python .然后按照’指导’的操作进行编译并安装.
然后安装 SQLite 会很顺利, 安装 pysqlite (2.0.7) 需要修改一下 setup.py 文件的 include_dirs 与 library_dirs 要分别指向我们特定的目录,’指导’有示例.然后安装 SWIG (1.3.24).问题不大.

继续阅读